Cześć, jestem dość świeży w routingu. Co prawda już się zacząłem z tym bawić, ale nie chcę zrobić sobie złych nawyków ani tym bardziej złego kodu. Będę bardzo wdzięczny jeśli rzucicie na to okiem i powiecie czy można tak robić i czy jest to dobre rozwiązanie. Jeśli nie to proszę o sugestię co zmienić/co i jak zrobić.
Otóż korzystam z AltoRouter. Mój kod wygląda tak:
// Router $router = new altoRouter(); $view = new view($account, $profile); $router->map('GET', '/', function() use($view){ $view->render('homepage', 'Panel'); });
class view{ public function __construct($account, $profile){ $this->account = $account; $this->profile = $profile; } public function render($page_name, $page_title){ $this->account->isLogged(); http://www.php.net/global $db; if(http://www.php.net/is_readable('views/panel/templates/header.php')){ require 'views/panel/templates/header.php'; } if(http://www.php.net/is_readable('views/panel/'.$page_name.'.php')){ require 'views/panel/'.$page_name.'.php'; } if(http://www.php.net/is_readable('views/panel/templates/footer.php')){ require 'views/panel/templates/footer.php'; } } }
Do metody render przekaż sobie tablicę. W metodzie render ją przyjmij i wykonaj funkcję extract(). Funkcja ta stworzy tyle zmiennych ile będziesz miał indeksów w tablicy. Dzięki czemu każdą wartość z tablicy będziesz miał w osobnej zmiennej.
$router->map('GET', '/', function() use($view){ $view->render('homepage', [ 'title' => 'Panel' ]); }); // W metodzie renderującej public function render($view, http://www.php.net/array $data = []) { http://www.php.net/extract($data); if(http://www.php.net/is_readable('views/panel/'.$page_name.'.php')){ require 'views/panel/'.$page_name.'.php'; } } // W widoku http://www.php.net/echo $title;
Ja bym wziął cały https://www.slimframework.com/ bo np global $db; w render woła o pomstę do nieba.
Dziękuję bardzo za wskazówki
a to global $db to było tylko chwilowe i przez przypadek tu wstawiłem. Już tego nie mam w kodzie
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)