Я читал этот вопрос о том, как управлять отправкой формы в приложениях php mvc.
Я пытаюсь создать систему маршрутизации, чтобы узнать больше о MVC и php, и я хочу использовать RedBeanPHP в качестве основного ORM. Я не мастер с паттерном mvc в php, поэтому у меня есть следующий код, который должен создавать экземпляр соответствующего контроллера при запросе URL. Может ли кто-нибудь показать мне правильную реализацию концепции без концепции?
Еще одно сомнение по поводу RedBean. Будет ли загружаться на каждый контроллер, если я настрою его на фронтальном контроллере?
<?php
declare( strict_types = 1 );
require_once __DIR__.'/vendor/autoload.php';
use \RedBeanPHP\R;
$dbh = R::setup();
class Router {
public static function init()
{
$uri = trim(parse_url( $_SERVER['REQUEST_URI'], PHP_URL_PATH ), '/');
if( $uri != '' ){
list( $controller, $method, $args ) = explode( '/', $uri, 3 );
$controller = ucfirst( $controller ).'Controller';
if( class_exists( $controller ) ){
if( !isset($args) ){
call_user_func([new $controller, $method]);
}
call_user_func_array( new $controller, $method, [$args] );
}
}
else{
IndexController::index();
}
}
}
class IndexController {
public static function index()
{
//include TEMPLATE_PATH.'/index.php';
echo 'Hello index';
}
}
class UserController {
public function demo()
{
//include TEMPLATE_PATH.'/test.php';
echo 'Hello demo';
}
}
?>
Я не уверен, что это правильный способ применения шаблона mvc, это также потому, что если в загруженном шаблоне представления есть форма, я не уверен, как с ней работать, что является правильным <form action="" >
установить. Это также потому, что я буду реализовывать redbean с FUSE
моделями для проверки данных.