Dziś jest piątek, 12 marca 2010 roku (z kalendarza...)

Open Power Template 2.0-RC2

Icon

29.06.2009, 20:24

Projekty

Komentarze (5)

Powrót

Przeciągająca się sesja oraz odkrycie brakującej implementacji jednego z podrzędnych elementów systemu formatów danych sprawiły, że kolejne wydanie Open Power Template'a 2.0 nieco przesunęło się w czasie (aczkolwiek ludzie sprytni pewnie dawno już odkryli, że svn.invenzzia.org umożliwia pobieranie snapshotów repozytorium :)). Nie jest to jeszcze wersja stabilna, ale Release candidate, a dlaczego, już wyjaśniam.

Powodem jest oczywiście wspomniany podrzędny system. W przeciwieństwie do innych systemów szablonów, OPT nie ogranicza się do przeniesienia fragmentów języka PHP do HTML-a i opakowania ich w klamerki, lecz zapewnia dość potężną warstwę abstrakcji, która może być przeprogramowywana na wiele sposobów i dostosowywana do potrzeb. Cel jest jeden: większa przenośność szablonów, uniezależnienie ich od konkretnego skryptu i jego implementacji i zwyczajne ułatwienie pracy. Jednym z mechanizmów do osiągnięcia tego celu są formaty danych, za pomocą których można zmienić zachowanie np. sekcji lub zmiennych szablonów. Zgrzyt wystąpił właśnie w przypadku tychże zmiennych, a konkretniej połączenia ich z operatorem przypisania. Domyślna implementacja po prostu przenosi zapis $zmienna na odwołanie do wewnętrznej listy zmiennych widoku $this->_data['zmienna']. Biorąc wyrażenie z przypisaniem (np. $zmienna is 5), w dalszym ciągu otrzymujemy poprawny kod PHP: $this->_data['zmienna']=5. Jednak teoretycznie nie ma żadnych przeciwwskazań, by ktoś w miejsce takiego wywołania zrobił sobie jakąś magiczną funkcję. Odczyt zadziałałby, ale próba zapisu skończyłaby się komunikatem Parse error, i to generowanym przez PHP w momencie wykonywania.

Co się okazało - w kodzie był komentarz TODO z informacją, że taka sytuacja musi być obsłużona i został on przegapiony (dlatego nie powinno się tego typu rzeczy umieszczać w komentarzach, nawet jak się ma dobre IDE - taka rada na przyszłość :)), więc siłą rzeczy trzeba było siąść i lekko stuningować parser wyrażeń, by format danych mógł sobie coś takiego obsłużyć. Uznałem jednak, że ingerencja ta jest na tyle poważna, że mimo posiadania już 125 testów dotyczących kompilacji wyrażeń, lepiej dmuchać na zimne i opublikować kolejną wersję RC. Natomiast sam system formatów danych umożliwia już eleganckie podstawienie funkcji pod zmienną również w przypadku zastosowania operatora przypisania. Przyda się to podczas pisania Open Power Forms, które zacznie się już niebawem.

Z innych wieści, prawie skończona jest już angielska dokumentacja. Do napisania zostało zaledwie parę rozdziałów dotyczących przeważnie pobocznych zagadnień. Nie znaczy to jednak, że praca nad nią zostanie zakończona. Wciąż będzie pojawiać się nowa funkcjonalność, a ponadto stale jestem otwarty na wszelkie sugestie dotyczące formuły dokumentacji tak, by jak najlepiej służyła ona użytkownikom. Projekt jest złożony i dobra dokumentacja to podstawa.

Powrót

Komentarze

Napisał Xamael w wtorek, 30 czerwca 2009 o 01:08

Zyx nie działa SVN po WWW. Widac tylko puste katalogi.

Napisał Zyx w wtorek, 30 czerwca 2009 o 10:08

To sobie zajrzyj do właściwego katalogu. W releases jest svn:externals i nic dziwnego, że się nic nie wyświetla.

Napisał Nowaker w wtorek, 30 czerwca 2009 o 13:38

Przecież Eclipse ma takie fajne okienko z TODO. Mając duży monitor można sobie pozwolić na to, by cały czas było widoczne :)

P.S. Ostatnio korzystam z IntelliJ IDEA i muszę przyznać, że jest wygodne - szczególnie w kwestii podpowiadania składni.

Napisał jumski w środę, 1 lipca 2009 o 22:30

cześć!
czy kod OPT jest pokryty unit testami?

Napisał Zyx w środę, 1 lipca 2009 o 23:13

Jest pokryty, nawet możesz je sobie obejrzeć. Ich liczba powoli zbliża się do 500, ale ciężko mi podać stopień pokrycia kodu w procentach, po części dlatego, że na razie mam moje środowisko webdeveloperskie w kompletnej rozsypce, po części - ponieważ projekt jest na tyle specyficzny, że najprawdopodobniej potrzebne są do tego celu dedykowane narzędzia uwzględniające tę specyfikę (możesz sprawdzić instrukcje, ale nie kod, który one generują).

Pamiętaj, dbaj o kulturę wypowiedzi oraz dyskusji w sieci.

Skomentuj

NickInformacja
E-mailNa wypadek potrzeby kontaktu z autorem (niepublikowany)
BlogNie zapomnij o http://
LayoutNapisz tu, czy widzisz dzienny czy nocny layout.
WpisFormatowanie wiki

Na Zyxist.com panuje swoboda wyrażania opinii oraz krytyki pod dowolnym adresem. Jedyny warunek: musi być ona kulturalna i rzeczowa. Na chamstwo, prostactwo lub jawne obrażanie kogokolwiek nie ma tu miejsca i takie komentarze są bardzo szybko usuwane. Jeśli zamierzasz polemizować z treścią wpisu, wpierw uważnie ją przeczytaj.

© Tomasz "Zyx" Jędrzejewski 2005 - 2010 | Wykonanych zapytań: 2 | Serwer wirtualny zapewnia