匹配控制器名称和呼叫特定功能

时间:2016-02-01 22:04:19

标签: php

我创建了一个名为Router的类,可以像这样导入所有控制器:

<?php

 include dirname(dirname(__FILE__)) . '\application\controllers\backend.php';

 class Router
 {
    private $_backend;

    public function __construct()
    {
       $this->_backend = new Backend();
    }

    /**
    * Execute function
    */

    public function submit($controller, $func)
    {
      // $this->_backend->index(); 
     } 
 }

?>

现在这个类在我的router.php文件中可用,此文件包含在其他任何人之前,我可以通过引用访问任何php文件中的路由器类:

$router = new Router();

我的任务是在index文件中导入的backend控制器中调用函数router.php。在index.php文件中我有:

$router->submit('backend', 'index');

如何匹配控制器名称并将作为参数传递的函数调用我的Router类中的变量?

1 个答案:

答案 0 :(得分:1)

<?php
 class Router
 {
    public function submit($controller, $func)
    {
      // include dynamically the needed file
      include dirname(dirname(__FILE__)) . '\application\controllers\' . $controller . '.php';
      // The classname starts with capital
      $Class = ucfirst($controller);
      // create an instance
      $ctr = new $Class();
      // and call the requested function
      $ctr->$func();
     } 
 }