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
#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? (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) |
|
|
|
hawk Włączanie plików + autoloader 10.02.2005, 17:23:52
DeyV Aby sprawę jeszcze bardziej skomplikować - warto p... 10.02.2005, 21:46:51
Imperior Myślę, że moje rozwiązanie pomoże Ci, jeśli wpadni... 11.02.2005, 18:39:48
hawk @Imperior:
Dwie słabe strony tu widzę:
1) Wszyst... 18.02.2005, 14:39:33
bela_666 Ja mysle, zeby rozwiazac to na podobnej zasadzie j... 18.02.2005, 15:03:36
Imperior Cytat(hawk @ 2005-02-18 13:39:33)Dwie słabe s... 18.02.2005, 20:17:07
hawk @bela_666: Takie rozwiązanie na pewno pasuje do ja... 21.02.2005, 14:43:27
hawk @serafin: Możesz napisać więcej? Mi się zawsze wyd... 25.02.2005, 09:23:01
Imperior Cytat(hawk @ 2005-02-25 08:23:01)Bo problem z... 25.02.2005, 09:55:57
Vengeance A co Wam się stanie gdy zamiast System.Out będzie ... 25.02.2005, 11:42:46
hawk Nic się nie stanie, poza utratą estetyki . Chociaż... 25.02.2005, 12:06:36
Vengeance ale to jest php a nie java
Co do autoloadera... ... 25.02.2005, 12:31:22
hawk Co za problem? Sprawdzanie po zrobieniu explode je... 25.02.2005, 12:48:42
Seth Troche to stary kod ale moze sie przyda:
[PHP] po... 25.02.2005, 12:50:43
bela_666 Seth, a czy te pregi nie spowalniają bardzo przy d... 25.02.2005, 12:55:30
Seth Jakies spowolnienie napewno jest ale za to mozna l... 25.02.2005, 13:07:03
bela_666 Cytat(hawk)Podsumowując, idealnie chciałbym mieć:
... 26.02.2005, 00:02:23
Nievinny Jeśli mogę wtrącić trzy grosze, ja myślę, że można... 26.02.2005, 09:35:42
hawk @bela_666: pokaż pokaż pokaż 26.02.2005, 09:55:15
Vengeance Nievinny: jakbyś zrobił cache jakiś to ok. Teraz u... 26.02.2005, 11:55:48
bela_666 Cytat(hawk @ 2005-02-26 09:55:15)@bela_666: p... 26.02.2005, 12:21:14
Vengeance Połączyłem kody: bela_666, Nievinny oraz Imperiora... 26.02.2005, 12:36:56
Vengeance Linia nr 9: zmieniasz ją na:
Kod if(!i... 26.02.2005, 12:41:48
Nievinny @Vengeance -> Czy twoim zdaniem ładowanie z map... 26.02.2005, 17:03:09
Vengeance Nievinny: chodzi oto, aby mape generować tylko RAZ... 26.02.2005, 17:35:25
Nievinny CytatNievinny: chodzi oto, aby mape generować tylk... 26.02.2005, 17:42:59
Vengeance A po co foreach? Jeszcze opozniac ? To $map[... 26.02.2005, 18:15:03
hawk @Vengeance et al: No, bardzo ładny kod . Ja bym do... 26.02.2005, 18:42:06
Vengeance Ok userzy forum.php.pl "wymyslili" juz i... 26.02.2005, 19:07:38
Nievinny Nazwa: Autoload Class System...
może być, a klasa... 27.02.2005, 12:32:23
chmolu Ja to rozwiązałem podobnie, jak w nowym Mojavi:
[... 4.03.2005, 10:29:10
Nievinny A ja generujesz listę klas? Tu masz od razu genera... 4.03.2005, 10:52:36
chmolu Lista klas jest w pliku konfiguracyjnym autoload.i... 4.03.2005, 16:34:52
hawk @chmolu:
1) Z tego co pamietam, w __autoload nie m... 4.03.2005, 17:26:32
chmolu Cytat1) Z tego co pamietam, w __autoload nie mozna... 4.03.2005, 17:49:43
Nievinny W sumie, skrypt po raz pierwszy zaczyna działanie ... 4.03.2005, 18:05:53
Imperior Cytat(hawk @ 2005-03-04 16:26:32)1) Z tego co... 5.03.2005, 11:12:31
hawk @chmolu: Faktycznie, obsługa plików ini jest bardz... 7.03.2005, 03:36:42
Bora Pliki ini są wczytywane szybciej niż php gdyż mają... 7.03.2005, 15:06:38
Vengeance A czy są szybsze od zserializowanej tablicy, zapis... 7.03.2005, 16:07:14
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 ![]() ![]() |
|
Aktualny czas: 20.11.2025 - 18:18 |