обрабатывать запросы в шаблоне MVC с помощью php - PullRequest
0 голосов
/ 05 июля 2019

Я читал этот вопрос о том, как управлять отправкой формы в приложениях 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 моделями для проверки данных.

...