Autor wpisu: Athlan, dodany: 21.01.2007 21:54, tagi: framework
Ostatnio nurtował mnie problem, jak mają być ułożone pliki we frameworku, tak aby można było je bardzo łatwo ładować poprzez __autoload(). Rozmyślałem nad sposobem zastosowanym w Zend Framework oraz moim - rzucić pliki niezależnie od ich nazw. Dwa linki, gdzie publikowałem swe przemyślenia, wyciągłaem wnioski, porównywałem wyniki:
Ostatecznie wygrał mój sposób. Kładę pliki tam, gdzie chcę, niezależnie od nazwy klasy. Zend Framework ma sztywno ustalone ścieżki klas, w zlaeżności od jej nazwy. Ci co mnie znają wiedzą, że nie lubię się ograniczać
No tak… wygrał sposób dotychczas stosowany w moim frameworku Vframe, ale jak rozwiązałem problem skanowania folderu Core za każdym razem? Hak bardzo prosty: tworzenie tzw. mapy frameworka. Czym jest owa mapa? Zwykłą zaserializowaną tablicą, która tworzona jest po pierwszym skanie zawartości frameworka. Po co tworzyć ją od nowa za każdym odświeżeniem strony, skoro można ją raz zapisać (przykład wypluten przez var_dump() mapy).
Na jakiej zasadzie to działa? Mapa zapisywana jest w pliku Vframe.map, to, co pokazałem w powyższym linku to jeden z elemetów mapy (wartość indeksu tablicy “files”). Są jeszcze dwa indexy: “date” oraz “version”. Jeżeli wersja frameworka zmieni się, lub minie dzień od wygenerowania mapy, wówczas jest ona tworzona raz jeszcze. Mapa frameworka trzymana jest bezpośrednio w jego folderze. Dlaczego? Ponieważ zawiera mapę samego siebie.
Podsumowywując:
- zaoszczędziłem czas działania aplikacji
- nie zmieniłem nazewnictwa klas
- nie jestem uzależniony od nadawania nazw klas w stosunku do ich położenia
- mapa aplikcaji jest na bieżąco aktualizowana, lub przy zmianie wersji ulega automatycznej zmianie
Myślę, że publikując wyniki “badań” rozwieje wiele wątpliwości “przeciwnikow” układu plików w Zend Framework.