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: Zarejestrowani Postów: 898 Pomógł: 48 Dołączył: 2.11.2005 Skąd: Poznań Ostrzeżenie: (0%)
|
Co do odświeżania mapy i jej zerowania to ja zastosowałem prosty manewr. Otóż jeśli dana klasa znajduje się w mapie, a w między czasie zmienię jej lokalizację, to podczas próby jej podłączenia wyrzucam wyjątek - jeśli wyjątek się pojawi to po prostu czyszczę całą mapę.
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. Oczywiście narzut na przetworzenie tego w przypadku małych FW gdzie jest dajmy 100 klas jest niezauważalny, ale ... jak optymalizować to od początku :-) |
|
|
|
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
Athlan CytatBTW uważam, że przechowywanie całego rozkłada... 21.01.2007, 12:57:30 
athabus Cytat(Athlan @ 21.01.2007, 12:57:30 )... 21.01.2007, 13:37:27
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: 26.12.2025 - 09:54 |