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
#101
|
|
|
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
hawk @serafin: Trochę konsekwencji. Bardzo się starasz,... 17.06.2005, 08:44:59
matid Korzystam z debug_backtrace" title="Zobacz w manua... 17.06.2005, 10:31:38
Imperior Cytat(matid @ 2005-06-17 06:42:50)Chyba jedna... 17.06.2005, 15:12:25
matid [PHP] pobierz, plaintext <?php class Test1 exte... 17.06.2005, 15:41:10
bela_666 Fajna bajeczka : http://groups.google.pl/groups?q=... 17.06.2005, 20:35:56
Imperior Cytat(matid @ 2005-06-17 14:41:10)Jak wczytuj... 17.06.2005, 23:03:25
squid Jeszcze nie przeczytalem calego tematu wiec sory j... 8.08.2005, 12:56:24
hawk Tak naprawdę to wszystkie interfejsy powinno się w... 8.08.2005, 21:39:27
Vengeance Wywalić interfejsy? A niby z jakiej racji?
Przecie... 8.08.2005, 22:56:24
NuLL @Hawk - napisać parser plików który będzie usuwał ... 8.08.2005, 23:02:05
matid Jeśli kod jest wydany na zasadach OpenSource to mi... 9.08.2005, 07:36:32
hawk Ale ja mówię o dwóch wersjach kodu: debug i releas... 9.08.2005, 14:25:03
chmolu No jakoś mi się nie widzi usuwanie w kodzie ... 9.08.2005, 14:59:17
squid Cytat(chmolu @ 2005-08-09 15:59:17)No jakoś m... 9.08.2005, 15:12:26
NuLL Macie może jakiś pomysł co zrobić z autoloaderem k... 17.01.2006, 11:49:38
bigZbig Mozna zastosowac cos w rodzaju przestrzeni nazw. W... 17.01.2006, 12:18:57
NuLL Ja cos takiego robie tzn mam ezcCacheStorageFileAr... 17.01.2006, 12:23:08
bela_666 A po co rozbijac? Ja mam kilkaset linijek i smiga.... 17.01.2006, 12:57:03
squid co nazywacie mapa? Czy jest to skojarzona z klasa ... 17.01.2006, 13:12:04
NuLL CytatA po co rozbijac? Ja mam kilkaset linijek i s... 17.01.2006, 13:18:13
Ociu Cytat(squid @ 2006-01-17 14:12:04)co nazywaci... 17.01.2006, 14:28:28
bela_666 NuLL, pytanie moje brzmi, czy każdy komponent może... 17.01.2006, 19:16:03
NuLL bela_666 - moze, nie wszystkiego bo czesc jest zal... 17.01.2006, 20:06:44
hawk @NULL: IMHO rozwiązaniem problemu ze zbyt dużą lic... 24.01.2006, 08:54:37
squid Cytat(hawk @ 2006-01-24 09:54:37)@NULL: IMHO ... 14.02.2006, 13:34:38
eMartio Cytat(DeyV @ 2005-02-10 20:46:51)
CytatTakie... 31.03.2006, 19:40:31
matid Cytat(eMartio @ 2006-03-31 19:40:31)Co oznacz... 31.03.2006, 20:25:42
bela_666 Cytat(eMartio @ 2006-03-31 20:40:31)CytatTaki... 31.03.2006, 20:51:29
NuLL Czy ktos moze wykonywal testy po jakims ciezkim ob... 27.05.2006, 16:52:38
Ludvik Ja osobiście wszystko mam przygotowane pod autoloa... 27.05.2006, 21:44:26
squid przy dobrym projekcie autoloadera mozna ominac f-c... 27.05.2006, 22:19:50
NuLL @Ludvik - dzieki za wiesci - o cos takiego mi chod... 28.05.2006, 15:16:33
Vengeance To ciekawe co mówicie, bo w mojej aplikacji autolo... 10.06.2006, 17:38:21 
squid Cytat(Vengeance @ 10.06.2006, 18:38 ) To ... 10.06.2006, 19:07:47
bigZbig Ja tez uzywam autoloadera, ale nie tworze jednej g... 12.06.2006, 08:04:11
Vengeance Jakie argumenty by tu nie padały, i tak nic nie zm... 12.06.2006, 13:46:28
bigZbig Argument o czytelności kodu do mnie nie przemawia ... 13.06.2006, 06:52:15
NuLL CytatŻe już nie wspomne o np. umiejetnośći podpowi... 13.06.2006, 16:36:42
orson witam
eclipse przechowuje informacje o wszystkich... 13.06.2006, 17:37:21
eai Ja generuje sobie mapę przy instalacji aplika... 5.08.2006, 16:28:49
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: 21.11.2025 - 14:15 |