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
#41
|
|
|
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
Imperior Cytat(Vengeance @ 2005-03-07 15:07:14)A czy s... 7.03.2005, 17:09:23
hawk @Bora: Pliki ini moze i sa wczytywane szybciej, al... 7.03.2005, 17:19:21
orson witam ...
a moze w ini zrobic 2 sekcje ...
Kod... 7.03.2005, 22:59:24
hawk A w jaki sposob z gory okreslisz, ktora sciezke ma... 8.03.2005, 00:10:53
Nievinny A ja mam jeszcze pytanie dot. __autoload(). Czy je... 8.03.2005, 08:01:25
orson Cytat(hawk @ 2005-03-08 00:10:53)A w jaki spo... 8.03.2005, 20:18:36
hawk @Orson: nie o to mi chodzi. Masz np. (a raczej uży... 9.03.2005, 03:16:17
orson witam ...
hmm ... no to w pliku ini w sekcji clas... 9.03.2005, 07:31:00
dr_bonzo @Nievinny: wyrzuc wyjatek w tej metodzie i sprawdz... 9.03.2005, 10:25:30
Nievinny Owszem wywala wyjątek, ale nie obsługuje go w zwyk... 9.03.2005, 17:20:55
chmolu Rozwiązanie z generowaniem mapy przez skanowanie k... 12.03.2005, 23:12:26
Vengeance chmolu: Zauważ, że to Ty trzymasz każdą klasę w in... 13.03.2005, 01:10:23
chmolu @Vengeance: to prawda, nie każdy musi trzymać każd... 13.03.2005, 09:44:36
bela_666 @chmolu a jak zmienisz ścieżke do smarty ? 13.03.2005, 10:44:30
chmolu Nie używam Smarty więc nie ma żadnego problemu
... 13.03.2005, 12:43:09
Vengeance @chmolu: ty nie. Ale z tego co wynika z twoich wyp... 13.03.2005, 13:43:28
chmolu Zapewniam cię, że nie będzie to żaden problem
A... 13.03.2005, 13:55:45
Ociu Pozwole sobie odkopać temat
Zastanawiam się czy ... 4.05.2005, 18:16:29
davidD Tylko właściwie... po co XML do zwykłego przypisan... 5.05.2005, 00:09:50
matid Ja to widzę tak:
1. Crowler, szuka po określonych ... 5.05.2005, 06:37:45
Ociu Cytat(matid @ 2005-05-05 07:37:45)2. Dodatkow... 5.05.2005, 07:22:02
chmolu IMO pliki XML w tym wypadku są niepotrzebne. Szybc... 5.05.2005, 08:24:02
Nievinny XML to przeładowanie, a nam zależy na czasie, nie?... 5.05.2005, 17:06:02
matid Cytat(Nievinny @ 2005-05-05 18:06:02)XML to p... 5.05.2005, 17:55:53
bigZbig @matid -> zauwazylem u Ciebie duze przywiazanie... 10.05.2005, 09:28:27
Nievinny @matid -> ale tą mapę musisz za każdym uruchomn... 10.05.2005, 16:01:11
matid Cytat(Nievinny @ 2005-05-10 17:01:11)@matid -... 10.05.2005, 17:36:31
Nievinny Czyli trzymasz tylko katalogi do parsowania? To ni... 10.05.2005, 18:24:33
Ociu Cytat(matid @ 2005-05-10 18:36:31)Chodzi mi o... 10.05.2005, 19:40:08
matid Cytat(Ociu @ 2005-05-10 20:40:08)Przemyślałem... 10.05.2005, 20:34:10
Vengeance " trwa to ok. 0,4 s"
lol :] Mój kod (a ... 10.05.2005, 21:26:35
matid Cytat(Vengeance @ 2005-05-10 22:26:35)" ... 10.05.2005, 21:46:19
Ociu Czepiasz się szczegółów, liczba była podana dla pr... 11.05.2005, 09:08:31
Vengeance To nie było czepianie. Chodziło mi o sposób w jaki... 11.05.2005, 20:45:37
matid Dla zainteresowanych - moja klasa Autoloader: http... 11.05.2005, 21:21:56
hawk Skoro temat zrobił się popularny i każdy chce mieć... 12.05.2005, 09:45:30
bigZbig @hawk -> Amen 12.05.2005, 09:49:20
dr_bonzo ...mam i ja.
Stworzylem swojego autoloadera:
- w ... 26.05.2005, 15:15:11
Vengeance Z twojego opisu wynika mi, że za każdym uruchomien... 26.05.2005, 18:37:05
dr_bonzo CytatZ twojego opisu wynika mi, że za każdym uruch... 26.05.2005, 19:12:28
hawk Ciekawe rozwiązanie. Faktem jest, że mi by się nie... 27.05.2005, 20:47:33
dr_bonzo W koncu. Kod przepisany od nowa, lecz jeszcze nie ... 5.06.2005, 02:20:39
Imperior dr_bonzo: http://wiki.php.pl/index.php/RecursiveDi... 5.06.2005, 13:02:34
hawk Fajny kod. Nawet zdążyłem już użyć .
Kilka uwag:
... 5.06.2005, 13:23:14
dr_bonzo Cytat- nie można podać extension np. "class.p... 5.06.2005, 14:00:34
hawk A co powiecie na taką implementację?
[PHP] pobierz... 12.06.2005, 22:16:47
cagrET hawk: widzę, że używasz "notacji węgierskiej... 13.06.2005, 13:24:34
hawk Nie, nie czytałem do tej pory. Przedrostki określa... 13.06.2005, 20:10:13
matid Cytat(hawk @ 2005-06-05 14:23:14)- przydatną ... 13.06.2005, 20:30:28
dr_bonzo cagrET: link do swietnego serwisu.
CytatZ jakiegoś... 13.06.2005, 21:03:51
hawk @dr_bonzo i matid:
Niestety, phpDocumentor nie ma,... 13.06.2005, 21:51:34
matid Cytat(hawk @ 2005-06-13 22:51:34)@dr_bonzo i ... 13.06.2005, 22:12:12
hawk @matid: Pomysł wręcz genialny w swojej prostocie. ... 16.06.2005, 12:17:19
matid No rzeczywiście, @scope będzie lepsze.
Spróbuję to... 16.06.2005, 15:48:55
hawk @serafin:
1) Nikt ci nie broni tworzyć takiej map... 16.06.2005, 18:31:01
hawk Cytat("serafin")Hawk: Wykorzystales 10 p... 16.06.2005, 20:42:41
matid Cytat(serafin)Ma to sens?
A dlaczego nie? Mi osobi... 16.06.2005, 22:08:29
bela_666 Cytat(matid @ 2005-06-16 23:08:29)Cytat(seraf... 16.06.2005, 22:12:29
Imperior Cytat(matid @ 2005-06-16 21:08:29)Ma ktoś jak... 17.06.2005, 07:20:58
matid Chyba jednak skorzystam z opcji 1, ponieważ zasięg... 17.06.2005, 07:42:50
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 ![]() ![]() |
|
Aktualny czas: 10.03.2026 - 21:22 |