1. Parametry kontrolera
  2. $nativeShow
  3. $actions
  4. Metody używane w kontrolerze

Z poprzednich lekcji wiemy już nieco o klasach występujących w APELU, zasadach tworzenia nazw tabel oraz obiektów. Pora przejść do szczegółowych opisów poszczególnych klas. Opis zrobimy na przykładzie naszego systemu mojapel którego szkielet przygotowaliśmy na pierwszej lekcji. Co zrobić aby móc cokolwiek wyświetlić na ekranie? Po pierwsze musimy zdefiniować domyślny kontroler dla naszego systemu. Zwyczajowo nazywany jest ctrl_main, tak więc nie będziemy odbiegać od tej zasady.

Parametry kontrolera

Aby dokładnie omówić działanie kontrolera, musimy zacząć od tego jak działa najważniejszy obiekt sterujący w systemie, czyli obiekt klasy ap_page zdefiniowany w pliku front/index.php. Odpowiada on za całość działania aplikacji, czyli ładowanie odpowiedniego kontrolera, renderowanie strony html, obsługę błędów i ładowania plików. Obiekt ten rozpoznaje który kontroler załadować na podstawie parametru przekazywanego w adresie URL strony, a konkretnie switch, i przekazuje do niego nazwę metody jaką kontroler ma wywołać (parametr action). W konstruktorze obiektu jest zdefiniowana tablica $this->ctrl w której kluczem jest wartość parametru switch a wartością nazwa kontrolera do załadowania. Tabela musi zawierać conajmniej jedną pozycję, i musi to być kontroler przypisany do parametru default. Zostanie on załadowany gdy wywołamy adres strony beż żadnego parametru. Przejdźmy teraz do samego kontrolera. W kontrolerze są zawarte trzy parametry które musimy wypełnić. Są to:

  • $defaultAction - nazwa metody jaka zostanie wywołana przy załadowaniu strony bez zdefiniowanego parametru action
  • $nativeShow - nazwa domyślnego widoku jaki wyświetli kontroler
  • $actions - tablica ze zdefiniowanymi nazwami metod które ma prawo wywołać użytkownik z parametru action
  • $defaultAction - na tą zmienną przypisujemy jeden z kluczy tablicy $actions. Będzie on nam definiował metodę jaka zostanie wybrana gdy w adresie URL zostanie pominięty lub nie wypełniony parametr action. Pole jest obowiązkowe.

$nativeShow

Kontrolery są odpowiedzialne za składanie stron html “do kupy”, czyli generowanie stron. Ponieważ zawsze coś musi zostać wyświetlone, każdy kontroler posiada widok natywny, który jest wypełniany treścią w zależności od wywołanej metody. Omówmy to na przykłądzie:

Każda strona internetowa musi posiadać przynajmniej taki zestaw tagów:

<html>
	<head>
	</head>
	<body>
	</body>
</html>

W nagłówku powinniśmy jeszcze umieścić informacje o kodowaniu, opis strony (czyli znaczniki meta), tytuł strony, często dodajemy informacje o stylach czy kody javascript. Dodawanie tego za każdym razem do strony jest zwykłą stratą czasu, dlatego też najwygodniej jest niezmienne części strony umieścić w jednym miejscu aby ich za każdym razem nie przepisywać, natomiast modyfikować tylko to co się zmienia. Właśnie widok natywny jest takim kontenerem który jest niezmienny, a do niego doładowywane są obiekty generujące odpowiednie fragmenty strony. Dokładnie opiszemy ten mechanizm nieco później.

$actions

Ta zmienna jest tablicą w której mamy nazwy metod uprawnionych do wywołania przez parametr action. Została ona wprowadzona w celu zabezpieczenia systemu przed próbą ataku polegającą na dopasowywaniu parametrów adresu URL. W tablicy tej kluczem jest wartość parametru action a wartością nazwa wywoływanej metody. Z reguły są one jednakowe.

Metody używane w kontrolerze

Jak już się dowiedzieliśmy wcześniej kontroler odpowiada za interakcję z użytkownikiem, i złożenie wynikowej strony html, zatem musi otrzymać jakieś dane wejściowe, dokonać na nich jakichś operacji i na końcu odpowiednio zbudować stronę do wyświetlenia. Do tych wszystkich czynności służy zestaw predefiniowanych metod:

  • get('param_name')
  • set('param_name')
  • addShow('show_name','position')
  • addMngr('mngr_name')

Metoda get pobiera wartość parametru param_name. Metoda set ustawia ją. Metoda addMngr tworzy nam nowego managera o nazwie mngr_name i zwraca do niego wskaźnik. Podobnie czyni metoda addShow z tym że dotyczy widoków i posiada parametr position który mówi nam o tym w którym miejscu widoku natywnego mamy dany widok umieścić.

Posiadając już taką wiedzę spróbujmy stworzyć własny kontroler. Tworzymy plik front/system/ctrl/main.php i umieszczamy w nim definicję klasy ctrl_main. Następnie musimy w nim określić domyślną akcję, listę metod uprawnionych oraz nazwę natywnego widoku. Przyjmijmy że domyślny widok będzie nazywał się show_main a domyślna metoda show. W tym momencie nasz kontroler powinien wyglądać mniej więcej tak:

/**
 *  przykładowy kontroler
 */
class ctrl_main extends ap_ctrl implements iface_ctrl {
	protected $defaultAction = 'show';
	protected $nativeShow = 'show_main';
	protected $actions = array (
		'show' => 'show'
	);
	public function show() {
	
	}
}

Jak widać ciało metody show jest jeszcze nie wypełnione, jednak jeszcze za mało umiemy aby móc je wypełnić.

<<< Obiekty - Widok >>>

Kontroler

Etc..

All Wiki Pages

Kontroler is a public wiki page

This wiki page is a public wiki page. It can be read by anyone including users that have not logged in and web crawlers such as Google.

Entry has no comments

You do not have sufficient permissions to comment

1 year ago
psiwik picture
psiwik updated Wiki Kontroler

Text: {toc} p. Z poprzednich lekcji wiemy już nieco o klasach występujących w APELU, zasadach tworzenia nazw tabel oraz obiektów. Pora przejść do szczegółowych opisów poszczególnych klas. Opis zrobimy na przykładzie naszego systemu mojapel którego szkielet przygotowaliśmy na pierwszej lekcji. Co zrobić aby móc cokolwiek wyświetlić na ekranie? Po pierwsze musimy zdefiniować domyślny kontroler dla naszego systemu. Zwyczajowo nazywany jest @ctrl_main@, tak więc nie będziemy odbiegać od tej zasady. h3. Parametry kontrolera p. Aby dokładnie omówić działanie kontrolera, musimy zacząć od tego jak działa najważniejszy obiekt sterujący w systemie, czyli obiekt klasy @ap_page@ zdefiniowany w pliku @front/index.php@. Odpowiada on za całość działania aplikacji, czyli ładowanie odpowiedniego kontrolera, renderowanie strony html, obsługę błędów i ładowania plików. Obiekt ten rozpoznaje który kontroler załadować na podstawie parametru przekazywanego w adresie URL strony, a konkretnie switch, i przekazuje do niego nazwę metody jaką kontroler ma wywołać (parametr @action@). W konstruktorze obiektu jest zdefiniowana tablica @$this->ctrl@ w której kluczem jest wartość parametru switch a wartością nazwa kontrolera do załadowania. Tabela musi zawierać conajmniej jedną pozycję, i musi to być kontroler przypisany do parametru default. Zostanie on załadowany gdy wywołamy adres strony beż żadnego parametru. Przejdźmy teraz do samego kontrolera. W kontrolerze są zawarte trzy parametry które musimy wypełnić. Są to: * @$defaultAction@ - nazwa metody jaka zostanie wywołana przy załadowaniu strony bez zdefiniowanego parametru action * @$nativeShow@ - nazwa domyślnego widoku jaki wyświetli kontroler * @$actions@ - tablica ze zdefiniowanymi nazwami metod które ma prawo wywołać użytkownik z parametru action * @$defaultAction@ - na tą zmienną przypisujemy jeden z kluczy tablicy $actions. Będzie on nam definiował metodę jaka zostanie wybrana gdy w adresie URL zostanie pominięty lub nie wypełniony parametr action. Pole jest obowiązkowe. h3. $nativeShow p. Kontrolery są odpowiedzialne za składanie stron html "do kupy", czyli generowanie stron. Ponieważ zawsze coś musi zostać wyświetlone, każdy kontroler posiada widok natywny, który jest wypełniany treścią w zależności od wywołanej metody. Omówmy to na przykłądzie: p. Każda strona internetowa musi posiadać przynajmniej taki zestaw tagów: pre.. <html> <head> </head> <body> </body> </html> p. W nagłówku powinniśmy jeszcze umieścić informacje o kodowaniu, opis strony (czyli znaczniki meta), tytuł strony, często dodajemy informacje o stylach czy kody javascript. Dodawanie tego za każdym razem do strony jest zwykłą stratą czasu, dlatego też najwygodniej jest niezmienne części strony umieścić w jednym miejscu aby ich za każdym razem nie przepisywać, natomiast modyfikować tylko to co się zmienia. Właśnie widok natywny jest takim kontenerem który jest niezmienny, a do niego doładowywane są obiekty generujące odpowiednie fragmenty strony. Dokładnie opiszemy ten mechanizm nieco później. h3. $actions p. Ta zmienna jest tablicą w której mamy nazwy metod uprawnionych do wywołania przez parametr action. Została ona wprowadzona w celu zabezpieczenia systemu przed próbą ataku polegającą na dopasowywaniu parametrów adresu URL. W tablicy tej kluczem jest wartość parametru action a wartością nazwa wywoływanej metody. Z reguły są one jednakowe. h3. Metody używane w kontrolerze p. Jak już się dowiedzieliśmy wcześniej kontroler odpowiada za interakcję z użytkownikiem, i złożenie wynikowej strony html, zatem musi otrzymać jakieś dane wejściowe, dokonać na nich jakichś operacji i na końcu odpowiednio zbudować stronę do wyświetlenia. Do tych wszystkich czynności służy zestaw predefiniowanych metod: * @get('param_name')@ * @set('param_name')@ * @addShow('show_name','position')@ * @addMngr('mngr_name')@ p. Metoda @get@ pobiera wartość parametru param_name. Metoda set ustawia ją. Metoda addMngr tworzy nam nowego managera o nazwie @mngr_name@ i zwraca do niego wskaźnik. Podobnie czyni metoda @addShow@ z tym że dotyczy widoków i posiada parametr position który mówi nam o tym w którym miejscu widoku natywnego mamy dany widok umieścić. p. Posiadając już taką wiedzę spróbujmy stworzyć własny kontroler. Tworzymy plik @front/system/ctrl/main.php@ i umieszczamy w nim definicję klasy @ctrl_main@. Następnie musimy w nim określić domyślną akcję, listę metod uprawnionych oraz nazwę natywnego widoku. Przyjmijmy że domyślny widok będzie nazywał się @show_main@ a domyślna metoda @show@. W tym momencie nasz kontroler powinien wyglądać mniej więcej tak: pre.. /** * przykładowy kontroler */ class ctrl_main extends ap_ctrl implements iface_ctrl { protected $defaultAction = 'show'; protected $nativeShow = 'show_main'; protected $actions = array ( 'show' => 'show' ); public function show() { } } p. Jak widać ciało metody show jest jeszcze nie wypełnione, jednak jeszcze za mało umiemy aby móc je wypełnić.{toc} p. Z poprzednich lekcji wiemy już nieco o klasach występujących w APELU, zasadach tworzenia nazw tabel oraz obiektów. Pora przejść do szczegółowych opisów poszczególnych klas. Opis zrobimy na przykładzie naszego systemu mojapel którego szkielet przygotowaliśmy na pierwszej lekcji. Co zrobić aby móc cokolwiek wyświetlić na ekranie? Po pierwsze musimy zdefiniować domyślny kontroler dla naszego systemu. Zwyczajowo nazywany jest @ctrl_main@, tak więc nie będziemy odbiegać od tej zasady. h3. Parametry kontrolera p. Aby dokładnie omówić działanie kontrolera, musimy zacząć od tego jak działa najważniejszy obiekt sterujący w systemie, czyli obiekt klasy @ap_page@ zdefiniowany w pliku @front/index.php@. Odpowiada on za całość działania aplikacji, czyli ładowanie odpowiedniego kontrolera, renderowanie strony html, obsługę błędów i ładowania plików. Obiekt ten rozpoznaje który kontroler załadować na podstawie parametru przekazywanego w adresie URL strony, a konkretnie switch, i przekazuje do niego nazwę metody jaką kontroler ma wywołać (parametr @action@). W konstruktorze obiektu jest zdefiniowana tablica @$this->ctrl@ w której kluczem jest wartość parametru switch a wartością nazwa kontrolera do załadowania. Tabela musi zawierać conajmniej jedną pozycję, i musi to być kontroler przypisany do parametru default. Zostanie on załadowany gdy wywołamy adres strony beż żadnego parametru. Przejdźmy teraz do samego kontrolera. W kontrolerze są zawarte trzy parametry które musimy wypełnić. Są to: * @$defaultAction@ - nazwa metody jaka zostanie wywołana przy załadowaniu strony bez zdefiniowanego parametru action * @$nativeShow@ - nazwa domyślnego widoku jaki wyświetli kontroler * @$actions@ - tablica ze zdefiniowanymi nazwami metod które ma prawo wywołać użytkownik z parametru action * @$defaultAction@ - na tą zmienną przypisujemy jeden z kluczy tablicy $actions. Będzie on nam definiował metodę jaka zostanie wybrana gdy w adresie URL zostanie pominięty lub nie wypełniony parametr action. Pole jest obowiązkowe. h3. $nativeShow p. Kontrolery są odpowiedzialne za składanie stron html "do kupy", czyli generowanie stron. Ponieważ zawsze coś musi zostać wyświetlone, każdy kontroler posiada widok natywny, który jest wypełniany treścią w zależności od wywołanej metody. Omówmy to na przykłądzie: p. Każda strona internetowa musi posiadać przynajmniej taki zestaw tagów: pre.. <html> <head> </head> <body> </body> </html> p. W nagłówku powinniśmy jeszcze umieścić informacje o kodowaniu, opis strony (czyli znaczniki meta), tytuł strony, często dodajemy informacje o stylach czy kody javascript. Dodawanie tego za każdym razem do strony jest zwykłą stratą czasu, dlatego też najwygodniej jest niezmienne części strony umieścić w jednym miejscu aby ich za każdym razem nie przepisywać, natomiast modyfikować tylko to co się zmienia. Właśnie widok natywny jest takim kontenerem który jest niezmienny, a do niego doładowywane są obiekty generujące odpowiednie fragmenty strony. Dokładnie opiszemy ten mechanizm nieco później. h3. $actions p. Ta zmienna jest tablicą w której mamy nazwy metod uprawnionych do wywołania przez parametr action. Została ona wprowadzona w celu zabezpieczenia systemu przed próbą ataku polegającą na dopasowywaniu parametrów adresu URL. W tablicy tej kluczem jest wartość parametru action a wartością nazwa wywoływanej metody. Z reguły są one jednakowe. h3. Metody używane w kontrolerze p. Jak już się dowiedzieliśmy wcześniej kontroler odpowiada za interakcję z użytkownikiem, i złożenie wynikowej strony html, zatem musi otrzymać jakieś dane wejściowe, dokonać na nich jakichś operacji i na końcu odpowiednio zbudować stronę do wyświetlenia. Do tych wszystkich czynności służy zestaw predefiniowanych metod: * @get('param_name')@ * @set('param_name')@ * @addShow('show_name','position')@ * @addMngr('mngr_name')@ p. Metoda @get@ pobiera wartość parametru param_name. Metoda set ustawia ją. Metoda addMngr tworzy nam nowego managera o nazwie @mngr_name@ i zwraca do niego wskaźnik. Podobnie czyni metoda @addShow@ z tym że dotyczy widoków i posiada parametr position który mówi nam o tym w którym miejscu widoku natywnego mamy dany widok umieścić. p. Posiadając już taką wiedzę spróbujmy stworzyć własny kontroler. Tworzymy plik @front/system/ctrl/main.php@ i umieszczamy w nim definicję klasy @ctrl_main@. Następnie musimy w nim określić domyślną akcję, listę metod uprawnionych oraz nazwę natywnego widoku. Przyjmijmy że domyślny widok będzie nazywał się @show_main@ a domyślna metoda @show@. W tym momencie nasz kontroler powinien wyglądać mniej więcej tak: pre.. /** * przykładowy kontroler */ class ctrl_main extends ap_ctrl implements iface_ctrl { protected $defaultAction = 'show'; protected $nativeShow = 'show_main'; protected $actions = array ( 'show' => 'show' ); public function show() { } } p. Jak widać ciało metody show jest jeszcze nie wypełnione, jednak jeszcze za mało umiemy aby móc je wypełnić. "<<< Obiekty":http://www.xp-dev.com/wiki/67486/Obiekty - "Widok >>>":http://www.xp-dev.com/wiki/67486/Widok

janf0 picture
janf0 created Wiki Kontroler

View View full history