Post
#1
|
|
|
Grupa: Developerzy Postów: 823 Pomógł: 12 Dołączył: 18.12.2005 Ostrzeżenie: (0%)
|
Od dawna używam mojego FW do trzerzenia projektów. Moje klasy są umieszczone w katalogu /core/ frameworka, który rzy tworzeniu instancji głownej klasy jest skanowany. W taki sposób mapowane są wszystkie klasy, które później w __autoload() są includowane po wygenerowanych ścieżkach.
Ostatnio jednak pomyślałem, że jest to rozwiązanie bardzo elastyczne, jednakże pochłania te kilka milisec działania aplikacji. Pokusiłem się o zastanowienie jak inaczej można ładować klasy. Podsunął mi się projekt Zend Framework i podobna do niego aplikacja Rapide. Scieżka tak naprawde zawarta jest w nazwie klasy, przysłowiowe poziomy katalogów wyznaczają znaki _ . Poztanowiłem zebra plusy i minusy obu sposobów. Mapowanie core:
Gdyzie mnie również nazewnictwo, każde wejście do folderu to znak _. Chciałbym, zby wejscie do folderu było rozdzialane poprzez kolejną wielką literę, np zamiast Zend_Cache_Exception piszemy ZendCacheException. To milsze dla (przynajmniej mojego) oka. W związku z tym napisałem skrypt (na szybko funkcja mniej więcej jak by się dzielił string, oczywiście tablicę zamienie na stringi oddzielone "/"):
Prph powiedział, że moje nazewnictwo klas (rozpoczynające dir entry z wielkich liter) może mnie ograniczyć, dlaczego to nie wiem... rozmowa się urwała, dlatego proszę o dokładne wyjaśnienie. Co Wy na ten temat sądzicie? Jaki uklad wybrać? A może macie inne pomysły rozmieszczenia plikow komponentów framewroka? Prosiłbym o przykłady, teorię znam. Jak Wy macie to zrobione w swoich FW (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Pozdrawiam, Athlan (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Ten post edytował Athlan 20.01.2007, 18:01:54 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Developerzy Postów: 823 Pomógł: 12 Dołączył: 18.12.2005 Ostrzeżenie: (0%)
|
Cytat BTW uważam, że przechowywanie całego rozkłada FW w mapie jest niepotrzebne - przecież w większości przypadków wykorzystujesz 30% klas - bardzo rzadko zdarza się sytuacja, że dany projekt wykorzystuje wszystkie klasy danego FW - po co zatem przechowywać całą mapę - ja u siebie zastosowałem automatyczne dodawania do mapy tylko tych plików, które są używane w danym projekcie - czyli te o które projekt poprosił chociaż raz. @athabus, no ale zobacz jakie są minusy. Jeżeli zmienię ścieżke jakiejś klasy, to mapa musi zostać kasowana we wszystkich aplikacjach korzystających z frameworka. Przetrzymywanie mapy dla danego projektu jest IMHO niepotrzebne. Szybciej stworzę mapę wszystkich komponentów, niż za każdym razem będę sprawdzał czy istnieje on na mapie i po użyciu jednej klasy więcej od razu muszę tworzyć nową mapę... Postanowiłem, że mapę będzie trzymał sobie framework w swoim folderze obok klasy głównej (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Może teraz się wszyscy czepiamy, przecież to milisekundy, ale jakby tak rozumować to wogóle po co cache mapowania (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Cytat jak optymalizować to od początku :-) Dokładnie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Pozdrawiam, Athlan (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 898 Pomógł: 48 Dołączył: 2.11.2005 Skąd: Poznań Ostrzeżenie: (0%)
|
@athabus, no ale zobacz jakie są minusy. Jeżeli zmienię ścieżke jakiejś klasy, to mapa musi zostać kasowana we wszystkich aplikacjach korzystających z frameworka. Przetrzymywanie mapy dla danego projektu jest IMHO niepotrzebne. Szybciej stworzę mapę wszystkich komponentów, niż za każdym razem będę sprawdzał czy istnieje on na mapie i po użyciu jednej klasy więcej od razu muszę tworzyć nową mapę... Ale każdy projekt powinien mieć swoją własną mapę... Załóżmy że piszesz stronę dla swojej babci - coś ala blog. Wykorzystasz w nim 20 z 200 klas swojego FW - po co za każdym razem parsować te wszystkie klasy (w sensie plik z mapami do nich), skoro i taki ich nie używasz. Poza tym ja w mojej mapie przechowuje również informacje o klasach z danego projektu np. modele czy kontrolery itp, także jest to dodatkowy powód dla którego każdy projekt ma swoją mapę. Cytat Może teraz się wszyscy czepiamy, przecież to milisekundy, ale jakby tak rozumować to wogóle po co cache mapowania (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) To już chyba taki styl życia :-) |
|
|
|
Athlan Układ klas w core FW 20.01.2007, 18:00:47
dr_bonzo CytatPrph powiedział, że moje nazewnictwo klas (ro... 20.01.2007, 18:54:06
Athlan CytatI jaki w tym problem? Robisz to raz i zapisuj... 20.01.2007, 19:23:43
athabus Cytat(Athlan @ 20.01.2007, 18:00:47 )... 20.01.2007, 19:28:15
dr_bonzo CytatMożnaby było generować jakąś teblicę zaserial... 20.01.2007, 19:31:23
cadavre Ja dziś napisałem klasę do obsługi __autoload... 20.01.2007, 20:50:44
Athlan @cadavre, tak ale myśle nad tym, żeby się robiła o... 20.01.2007, 21:25:03
cadavre md5 na folder? Odczytać RecursiveDirectoryIterator... 20.01.2007, 21:27:41
Cysiaczek Proponuje prościej. Zrób mapę i zapakuj do statycz... 20.01.2007, 22:59:33
Athlan @cadavre, no tak, ale mapujemy core, a tego chemy ... 20.01.2007, 23:22:17
cadavre Ten czas naturalnie przy przetwarzaniu 100x. Ale i... 21.01.2007, 00:33:05
Athlan Dobra, klamka zapadła, zdecydowałem się na sposób ... 21.01.2007, 00:58:55
dr_bonzo Po co ci czytelna mapa -- ona ma byc czytelna tylk... 21.01.2007, 02:40:07
mysz Co do rozdzielania po wielkich literach: do tego ł... 21.01.2007, 11:27:36
athabus Co do odświeżania mapy i jej zerowania to ja zasto... 21.01.2007, 11:39:59
dr_bonzo Co rozumiem przez mape klas (to co w php Pro / Aut... 21.01.2007, 14:53:25
J4r0d Cytat(Athlan @ 21.01.2007, 12:57:30 )... 21.01.2007, 23:18:00
Athlan CytatCo u Ciebie robi kalsa główna?
Klasa główna,... 22.01.2007, 08:48:06 ![]() ![]() |
|
Aktualny czas: 17.12.2025 - 18:09 |