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
#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) |
|
|
|
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 ![]() ![]() |
|
Aktualny czas: 11.03.2026 - 02:18 |