将URL路由转换为funciton参数php mvc

Dan*_*l G 3 php model-view-controller url-routing

我正在为PHP项目编写一个自定义的MVC框架,在从URL路由获取参数之前,一切都很好.我坚持将URL路由的一部分动态传递给函数参数.我已经有一个方法,只是为了破坏路由并使用数组作为函数参数,但我真的想知道如何在CodeIgnitor或CakePHP中做到这一点.

这就是我想要做的.网站网址将是......

url: http://yoursite.com/profile/view/35/foo
Run Code Online (Sandbox Code Playgroud)

在我的控制器中,我会......

<?php

Class profileController Extends baseController 
{

    public function view($ID, $blah)
    {
        echo $ID; //would show 35
        echo $blah; //would show foo
    }

}

?>
Run Code Online (Sandbox Code Playgroud)

我真的很想知道这是怎么做到的.非常感谢!

小智 6

处理此问题的最简单方法是使用call_user_func_array()函数.您可以按如下方式使用它:

call_user_func_array(array($controller, $method), $params);
Run Code Online (Sandbox Code Playgroud)

$ controller将是您已经创建的控制器对象,$ method将是控制器的方法.然后$ params是从URI收集的参数数组.您只需要取出URI的控制器/方法部分.

您也可以使用Reflection执行此操作,但这通常比使用上述方法慢.