将URL路由转换为函数参数php mvc [英] turn URL route into funciton arguments php mvc
问题描述
我正在为一个PHP项目编写一个自定义MVC框架,在从URL路由获取参数之前,一切都很好.我被困在动态传递一部分URL路由到一个函数参数中.我已经有一种方法,可以插入路由并将数组用作函数参数,但是我真的很想知道如何像在CodeIgnitor或CakePHP中那样做.
I'm writing a custom MVC framework for a PHP project and everything is great until it comes to getting arguments from the URL route. I'm stuck on passing parts of the URL route into a function argument dynamically. I already have a method which is just to implode the route and use the array for the function arguments but I would really like to know how to do it like in CodeIgnitor or CakePHP.
这就是我想要做的.网站网址应为...
Here's what i want to have done. The site url would be...
url: http://yoursite.com/profile/view/35/foo
在我的控制器中,我会...
and in my controller I would have...
<?php
Class profileController Extends baseController
{
public function view($ID, $blah)
{
echo $ID; //would show 35
echo $blah; //would show foo
}
}
?>
我真的很想知道这是怎么做到的.非常感谢!
I would really like to know how this is done. Thanks a lot!
推荐答案
最简单的方法是使用call_user_func_array()函数.您将按以下方式使用它:
The easiest way to handle this is to use the call_user_func_array() function. You would use it as follows:
call_user_func_array(array($controller, $method), $params);
$ controller将是您已经创建的控制器对象,而$ method将是控制器的方法.然后$ params是从URI收集的参数数组.您只需要取出URI的控制器/方法部分.
$controller would be the controller object you have already created, and $method would be the controller's method. Then $params is an array of the parameters collected from the URI. You would just need to take out the controller/method portion of the URI.
您也可以使用反射进行此操作,但这通常是比使用上述方法要慢.
You could also do this using Reflection, but this typically is slower than using the above method.
这篇关于将URL路由转换为函数参数php mvc的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!