Ostatnio trochę czytałem na temat MVC i tak naprawdę tylko niektóre rzeczy z tego mi się podobają, nie wiem może jeszcze nie dostrzegam za wielu plusów, ale chce zastosować u siebie coś podobnego. Napisałem sobie klasę router i request, pierwsza pobiera dane z adresu, druga z formularzy, cookies, sesji i obsługuje dane z routera, klasę FrontController, które uruchamia moduł i tworzy instancję i klasę Action, uruchamia akcję (wywołuje metodę klasy).
Kodowo wygląda to mniej więcej tak:
<?php class FrontController { public $module; public $action; public $objectAction; public $request; public function __construct(HttpRequest $request) { $this->request = $request; $this->runModule(); } public function runModule() { $this->objectAction = new $module(); } else { throw new Exception('Nie można znaleźć plików modułu'); } } } class Action { private $controller; public function __construct(FrontController $controller) { $this->controller = $controller; $this->runAction(); } public function runAction() { $action = $this->controller->action; $this->controller->objectAction->$action(); } else { throw new Exception('Brak akcji'); } } } $controller = new FrontController($request); $action = new Action($controller); ?>
Jak powiecie czy to rozwiązanie jest optymalne, warto to dalej kodować, czy lepiej zabrać się za kodowanie 'standardowe' - z wprowadzaniem argumentów do funkcji itd.?