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.
Post
#181
|
|
|
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) |
|
|
|
hawk Włączanie plików + autoloader 10.02.2005, 17:23:52
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 ![]() ![]() |
|
Aktualny czas: 4.02.2026 - 18:14 |