将URL路由转换为函数参数php mvc [英] turn URL route into funciton arguments php mvc

查看:74
本文介绍了将URL路由转换为函数参数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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆