Oto przykładowy kontroler:
<?php require ('app/controllers/AppController.php'); class SayHelloController extends AppController { public function __construct () { require ('app/models/SayHelloModel.php'); require ('app/views/AppView.php'); $this -> view = new AppView; $this -> model = new SayHelloModel; } public function index () { } public function saySomething ($what) { } } ?>
Klasa AppView:
<?php final class AppView { public $vars; public function set ($varName, $varValue) { $this -> vars[$varName] = $varValue; } public function display ($templateFile) { require ('app/views/' . $templateFile . '.template'); } } ?>
Aby obsłużyć klasę widoku tak, aby w pliku widoku (*.template) były widoczne zmienne php, można:
1 użyć Smarty bądź innego systemu szablonów
2 użyć zmiennych globalnych
3 o ile dobrze wyczytałem, użyć wzorca Helper View/Template View.
Moja implementacja MVC jest co prawda budowana przy całkowitej ignorancji większości przydatnych wzorców projektowych, teraz jednak najlepszym rozwiązaniem wydaje się właśnie jeden z w/w wzorców.
Nie mogę jednak znaleźć w Sieci żadnego przykładu implementacji wzorców... Mogę więc prosić o sample kodu tego wzorca działającego z klasą AppView albo przynajmniej wytłumaczenie, na czym to polega?
Dzięki.