Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zalety autoloadera i map klas
bigZbig
post
Post #1





Grupa: Zarejestrowani
Postów: 740
Pomógł: 15
Dołączył: 23.08.2004
Skąd: Poznań

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


Odnosnie map klas i autoloadera zastanawialem sie nad wydajnoscia ich stosowania. Co prawda mapa klas (oczywiscie zakladajac ze jest tworzona przy pomocy generatora) w polaczeniu z autoloaderem pozwala na ogromna elastycznosc w przenoszeniu plikow miedzy katalogami. Z drugiej strony majac ogromna liczbe klas - liczoną w setkach - taka mapa rozrasta nam sie do ogromnych rozmiarow. Dodawanie tablicy liczacej kilkaset pozycji, z ktorych w danym wywolaniu skorzystamy zaledwie z kilkunastu (no moze z kilkudziesieciu) jest zbednym balastem dla naszego skryptu.

Mozna oczywiscie zastosowac manewr z dzieleniem tablic na kilka mniejszych. Dla kazdego "narzedzia", "aplikacji", zestawu skryptow czy jak to nazwiemy tworzymy osobna mape klas, ale jest to jedynie rozwiazanie polowiczne. Jesli przykladowo stworzymy osobna mape dla naszego systemu szablonow, osobna dla abstrakcji dostepu do bazy danych itd. to jesli nawet wykonamy jedno najprostsze zapytanie i wyswietlimy jego wynik przy pomocy wspomnianego szablonu to i tak musimy dolaczyc zaikludowac mapy. Zapewne istnieje jakas bardziej rozsadna metoda zarzadzania mapa klas, ale w chwili obecnej nie przychodzi mi taka na mysl. Moze ktos z was taka zaproponuje.

Ja ze swej strony wole recznie dbac o dodawanie odpowiednich plikow. Jesli jakas klasa dziedziczy po innej to zwyczajnie w klasie dzidziczacej inkluduje plik z klasa rodzicielska. Jedyny problem to niekiedy niepotrzebne sprawdzanie include_once w chwili kiedy dana klasa jest juz dodana. Inna niedogodnoscia jest utrata elastycznosci ale udalo mi sie to do pewnego stopnia obejsc przy pomocy definiowania stalej oraz dirname(__FILE__).

Co sadzicie o wydajnosci stosowania automap i autoloadera oraz czy waszym zdaniem lepiej miec wieksza swobode w przemieszczaniu plikow czy bardziej zoptymalizowana aplikacje i czy ta optymalizacja jest naprawde warta zachodu jakim jest reczna dłubanina?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
hawk
post
Post #2





Grupa: Zarejestrowani
Postów: 521
Pomógł: 0
Dołączył: 3.11.2003
Skąd: 3city

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


No to pójdźmy o krok dalej. Jaki jest sens w oddanym do użytku kodzie umieszczać include_once, skoro można umieścić kod załączanego pliku? Przecież to drugie rozwiązanie będzie bardziej wydajne.

Zaleta autoloadera jest taka, że nie mamy wpisanych na sztywno ścieżek do pliku i nic nas nie zmusza do tego, aby klasa Foo była w pliku foo.php. Podobną optymalizację widziałem kiedyś w starym mojavi (w nowym nie wiem jak jest): wersja debug składała się z wielu plików, wersja produkcyjna z jednego dużego. Tylko że a) pewnie autor musiał ręcznie wywalać include_once, i (IMG:http://forum.php.pl/style_emoticons/default/cool.gif) niektóre klasy były ładowane niepotrzebnie. A tutaj możemy policzyć/zmierzyć, jak często jaka klasa jest wywoływana, i umieścić w jednym pliku tylko te najczęściej używane.
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 5.10.2025 - 03:40