Some of posts from this blog has been moved to dywicki.pl. You will be automatically redirected to new blog if you would submit comment.
New posts are published on dywicki.pl, this blog contains old content and it is not continued.

Niektóre posty z tego bloga zostały przeniesione do dywicki.pl. Zostaniesz automatycznie przekierowany jeśli bedzięsz chciał dodać komentarz.
Nowe posty sa publikowane na dywicki.pl, ten blog zawiera stare treści i nie jest kontynuowany.

Thor – postępy

Filed under Thor by

Prace nad Thorem posunęły się do przodu. Mam teraz podstawowe klasy – TComponent, TParser (parser komponentów), ConfigParser i fabrykę do niego. Przy okazji chciałbym się pochwalić rozwiązaniem, jakie wymyśliłem.
Podobnie jak w Prado każdy komponent to klasa, która ma określone metody i atrybuty. W We wcześniej wymienionym frameworku w pliku konfiguracyjnym komponentu definiuje się metody do pobierania/ustawiania atrybutów poprzez wpisanie w pliku specyfikacji danego komponentu. U mnie wygląda to nieco inaczej – klasa TComponent, z której dziedziczą wszystkie pozostałe komponenty ma zaaplikowaną metodę __call(), która umożliwia tworzenie ‘wirtualnych metod’. Tzn. metod, które nie istnieją w klasie macierzystej.
Może przedstawię fragment pliku konfiguracyjnego:

 [properts] Action = text Method = text DefaultLogin = text DefaultPassword = text [events] OnClick OnSubmit [Action] get = true set = true [Method] get = true 

Teraz, chyba będzie łatwiej zrozumieć ;), wszystkie sekcje, które rozpoczynają się od wielkiej litery traktowane są jak atrybuty komponentu. Sekcja Method odnosi się do atrybutu Komponent::$Method. Teraz, gdy w sekcji Metod jest ustawiona dyrektywa get na true będzie można odwoływać się w kodzie do tego atrybutu poprzez getMethod w szablonie.
Wiem, że to troszkę niejasne, ale kiedy uda mi się stworzyć jakiś działający przykład to nie omieszkam pokazać. Przykładowy kod szablonu to:

 <thor:Komponent ID=”C1” params="true">Tutaj jakoś kod</thor:komponent> tutaj kod html <thor:Inny ID="C2" onclick="doSth();" />

2 responses so far

2 Responses to “Thor – postępy”

  1. Ace says:

    hehe :)

    Identyczny system szablonow chce napisac, ale mam jeden problem, mianowicie Nie wiem jak parsowac takie cacuszko. To co chce osiagnac, to Otrzymanie listy, ktora bedzie zawierala obiekty – takie tokeny, Kazdy obiekt ma jakis typ i parametry np: Typ -> tresc – czyli np: html, albo jakis inny content, a inny typ to np: ComponentOpen, ktor to jest tagiem otwierajacym komponent, Pozniej tag zamykajacy ComponentClose. Myslalem moze o uzyciu narzedzia do parsowania xml…, ale wtedy tez caly dokument musi byc poprawny

  2. Jest coś takiego jak WebFramework – w nim jest to zaimplementowane bez wyrażeń i parsowania XMLa. Po prostu krok po kroku od < do >.

Leave a Reply