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 10.02.2005, 17:23:52
Post #1





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? winksmiley.jpg
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Imperior
post 17.06.2005, 15:12:25
Post #2





Grupa: Zarejestrowani
Postów: 105
Pomógł: 0
Dołączył: 16.10.2004

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


Cytat(matid @ 2005-06-17 06:42:50)
Chyba jednak skorzystam z opcji 1, ponieważ zasięgów nie chcę olewać, a tworzenie instancji przez proxy wyklucza takie przypadki jak dziedziczenie, implementowanie interfaców, itp.

W jaki sposób wyklucza? Nie rozumię...


--------------------
Com powiedział, powiedziałem.
Go to the top of the page
+Quote Post

Posty w temacie
- 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
2 Stron V  < 1 2


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

 



RSS Wersja Lo-Fi Aktualny czas: 1.06.2024 - 21:36