Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zasady pisania na forum Pro

Tematy na forum Pro mogą zakładać jedynie moderatorzy. W otwartych tematach może pisać każdy, kto ma coś fachowego do powiedzenia. Wszystkie posty nie wnoszące nic do tematu będą natychmiast usuwane, a ich autorzy dostaną ostrzeżenie.
Jeśli uważasz, że jakiś temat jest warty dyskusji na tym forum, zgłoś go w temacie Propozycje.

> Włączanie plików + autoloader, chętnie bym posłuchał ciekawych pomysłów
hawk
post
Post #141





Grupa: Zarejestrowani
Postów: 521
Pomógł: 0
Dołączył: 3.11.2003
Skąd: 3city

Ostrzeżenie: (0%)
-----


Problem stary jak świat: system wymaga włączenia sporej liczby plików i zarządzanie tym jest upierdliwe. Do tego nie należy włączać więcej kodu niż potrzeba, a najlepiej zrobić jakieś lazy load.

Oczywiście, technik jest wiele:

1) require_once rozsiane po plikach, najlepiej poprzedzone jakąś stałą, np. require_once ROOT_DIR . '/foo/Foo.class.php';

2) Prado: deklarujemy namespacy - np. za pomocą funkcji using(), co dodaje nam ścieżki do include_path, a potem niech php znajdzie klasę.

3) Autoloader + mapa (nazwa klasy => ścieżka do pliku); autoloader wczytuje mapę i na jej podstawie jest w stanie znaleźć każdą klasę

Są jeszcze jakieś inteligentne sposoby? Dobry mechanizm powinien być odporny na "przemeblowanie" struktury plików (np. chcemy połączyć kilka klas w jeden plik).

BTW, włączanie plików bez klas (tylko funkcje i kod) jest gorsze, bo nie ma tego czegoś, czego można szukać po plikach... kolejna zaleta OOP? (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post

Posty w temacie
- hawk   Włączanie plików + autoloader   10.02.2005, 17:23:52
- - squid   "bigZbig dla kaydego pakietu musisy kopiowac ...   5.08.2006, 16:44:16
- - mtod   Przepraszam, ale nie doczytałem tego wątku od desk...   8.08.2006, 16:21:45
- - lukir   Mógłby ktoś z was podsumować wszystkie te rozważan...   8.08.2006, 23:27:40
- - mtod   @lukir: nie rozumiem, jak to: "nowych"?   9.08.2006, 11:57:53
- - lukir   @mtod: na podanej przez Ciebie stronce jest napisa...   12.08.2006, 10:24:01
- - Ludvik   Wtedy ten autoloader straci na wydajności. Każdora...   12.08.2006, 10:30:55
- - squid   wracajac do wydajnosci __autoload() to wspomniane ...   12.08.2006, 11:09:43
- - Denver   Ja, wykorzystując ujednolicone nazewnictwo klas, k...   18.08.2006, 22:52:45
- - LBO   Bardzo przydatne przy pisaniu autoloadera mogą być...   16.01.2007, 20:23:45
- - dr_bonzo   CytatSkoro autoloader w zamierzeniu istnieje dla ł...   16.01.2007, 21:57:56
- - LBO   Ten exit() to tylko przykład, nie mający...   16.01.2007, 22:06:02
- - NuLL   CytatChodzi o sam fakt, że model obiektowy php dop...   17.01.2007, 15:13:32
- - athabus   Ja napisałem sobie prosty autoloader - szczerze mó...   17.01.2007, 16:08:59
- - bigZbig   Problem z mapą obrazków jest tylko taki, że za każ...   17.01.2007, 16:52:03
- - athabus   W zf jest to bardzo fajnie rozwiązane - tu się zgo...   17.01.2007, 17:18:00
- - J4r0d   Przeczytałem cały wątek (trochę czasu to zajęło) i...   18.01.2007, 00:50:57
- - dr_bonzo   CytatCzy warto jeszcze kodować jakimś algorytmem z...   18.01.2007, 01:06:33
|- - J4r0d   Cytat(dr_bonzo @ 18.01.2007, 01:06:33...   18.01.2007, 01:16:20
- - dr_bonzo   CytatDalej zastanawiam się czy nie lepiej ładować ...   18.01.2007, 09:09:06
- - cadavre   Ja nazywam klasy nazwa_klasy.class.php - to chyba ...   18.01.2007, 16:52:08
- - DjKermit   Witam. Ja wykombinowałem coś takiego: Klasa: [PHP]...   22.01.2007, 12:26:38
- - hwao   Bardzo ładna klasa, mi się podoba - jakbym stosowa...   23.01.2007, 18:14:47
- - DjKermit   Dzięki bardzo. Cytat(hwao @ 23.01.2007, 18...   23.01.2007, 18:28:59
- - Turgon   Hmm... Klasa ciekawa i sporo wyjaśnia Dzi...   23.01.2007, 18:32:35
- - bigZbig   Ja nazywam swoje klasy zgodnie z konwencją przyjęt...   24.01.2007, 16:19:57
|- - DjKermit   Cytat(bigZbig @ 24.01.2007, 16:19:57 ...   25.01.2007, 17:52:44
- - Turgon   bigZbig: Podobno szybsze jest Ale zastanowię się ...   25.01.2007, 15:51:37
- - bigZbig   Jak init może być szybsze od tablicy skoro parsują...   25.01.2007, 19:34:40
- - LBO   hmmm, parsowanie to parsowanie... i "na oko...   25.01.2007, 19:49:48
- - Turgon   Ja zapisuje zserializowaną tablicę i działa sprawn...   25.01.2007, 20:23:36
- - Strzałek   O autoloadzie oraz przykładowa klasa generująca ma...   20.02.2007, 09:29:17
- - Sh4dow   Mnie zastanawia ile samo odwolanie sie do funkcji ...   1.03.2007, 12:58:38
|- - J4r0d   Cytat(Sh4dow @ 1.03.2007, 12:58:38 ) ...   1.03.2007, 13:05:04
- - athabus   Wydaje mi się, że troszeczkę dochodzimy do granic ...   1.03.2007, 13:34:02
- - grzegorzr   uuu, temat trochę się zakurzył post...   14.07.2007, 06:10:01
- - Ludvik   Chce Ci się pisać te mapy w YAML? Bo nie widzę sen...   14.07.2007, 09:29:16
- - deirathe   [PHP] pobierz, plaintext <?phpfunction __autolo...   19.07.2007, 18:32:24
- - athabus   Ta funkcja wymaga aby wszystkie klasy były w jedny...   20.07.2007, 11:52:43
- - Turgon   athabus: W takim przypadku mapy się wydają być jed...   20.07.2007, 22:11:45
- - athabus   wiem i sam właśnie map używam   20.07.2007, 22:31:07
- - kaniagandzowski   W klasie ClassLoader autora DjKermit brakuje warun...   27.08.2007, 18:05:25
- - Sagnitor   Być może uznacie mnie za archeologa, ale temat był...   5.07.2011, 12:53:10
- - by_ikar   CytatOba sposoby posiadają zalety i wady. Pierwszy...   5.07.2011, 13:29:25
- - Sagnitor   Nie zaznaczyłem tego w swojej wypowiedzi, ale właś...   5.07.2011, 13:39:31
- - Crozin   Zacznijmy od tego, że w niewielkich projektach wyd...   5.07.2011, 13:51:01
- - by_ikar   W tym temacie jeden z użytkowników zamieścił właśn...   5.07.2011, 14:38:53
- - Sagnitor   @Crozin Twój sposób numer dwa byłby bardzo dobry ...   6.07.2011, 10:52:46
- - Crozin   @Sagnitor: Nie widzę większych problemów:[PHP] pob...   6.07.2011, 11:17:27
- - Sagnitor   Problem jest kiedy niektórzy piszą w ten sposób: ...   6.07.2011, 11:26:29
- - Zyx   Sagnitor -> mapa nie wyklucza stosowania konwen...   13.07.2011, 10:14:52
- - wookieb   A to nie wystarczy już http://pl2.php.net/manual/p...   13.07.2011, 10:36:11
- - Zyx   Jak najbardziej wystarczy, tylko trzeba pamiętać o...   13.07.2011, 11:12:50
- - Hellz   Dlaczego nie trzymać mapy autoloadera w memcached,...   13.07.2011, 18:01:10
- - Zyx   Bo jest kilka razy wolniejszy od APC*, a sama mapa...   14.07.2011, 18:47:00
- - Hellz   Cytatco nie powinno dziwić, jeśli weźmiemy pod uwa...   14.07.2011, 23:38:34
- - Zyx   Wykorzystanie gniazd uniksowych niewiele Ci da. Tr...   16.07.2011, 12:20:44
2 Stron V  < 1 2


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 11.03.2026 - 02:18