Vframe 2.2
May 11
Dziś zakończyłem prace nad Vframe 2.2.0. Aktualna wersja nie jest kompatybilna wstecz do wersji 2.1.1.
Przebudowana została struktura stałych frameworka. Dotychczas używał on zwykłych, wbudowanych stałych PHP w celu ustalania kluczowych zmiennych konfiguracyjnych (np. ścieżka kontrolerów). Pojawił sie problem przy tworzeniu aplikacji, gdy ta musiała pobrać pliki konfiguracyjne oraz użyć modeli z kilku innych. Framework powinien działać płynnie, używając wbudowanych rozwiązań, nie martwiąc się o ścieżki. Jak wiemy, nie można nadpisać stałej przypisując jej inną wartość. Taki przypadek został uznany jako jeden z 7 grzechów głównych programisty PHP.
Możliwie były 2 rozwiązania:
- Implementacja definicji “stałych” używając wbudowanego od wersji 2.0 wzorca Registry.
- Wdrożenie nowego rozwiązania, poprzez odwołanie się do
Vframe::_(); (public static function _( string $sParam, mixed $mValue ))
Wybrałem drugie, ze względu na to, że nazwy Registry oraz stałych mogą się przez przypadek pokryć.
Vframe 2.2.0 jeszcze nie jest dostępny do pobrania w repozytorium.
Co w wersji 2.3?
PHP w wersji 5.3 idzie w bardzo dobrym kierunku. Zapowiada się implementacja magicznej metody __callStatic() analogicznej do __call(). Problem będzie w instalacji najnowszej wersji na polskich serwerach. W wersji 5.3 odkryto błąd, który tracił na wydajności (łączenie stringów poprzez znak kropki zużywał dużo więcej pamięci niż poprzez użycie .=). Może to przekona polskie firmy hostingowe do update’u paczki PHP. Póki co, __callStatic() można sobie zadeklarować ręcznie, a do działania wykorzystać eval().
Co za tym idzie klasa Vframe_Loader zostanie przebudowana używając __callStatic();
