問題描述
我正在為 PHP 項(xiàng)目編寫自定義 MVC 框架,一切都很好,直到從 URL 路由獲取參數(shù)為止.我堅(jiān)持將 URL 路由的一部分動(dòng)態(tài)傳遞給函數(shù)參數(shù).我已經(jīng)有一個(gè)方法,它只是為了內(nèi)爆路由并使用數(shù)組作為函數(shù)參數(shù),但我真的很想知道如何像在 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.
這就是我想要做的.網(wǎng)站網(wǎng)址將是...
Here's what i want to have done. The site url would be...
url: http://yoursite.com/profile/view/35/foo
在我的控制器中,我會(huì)...
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() 函數(shù).您可以按如下方式使用它:
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 將是您已經(jīng)創(chuàng)建的控制器對象,而 $method 將是控制器的方法.然后 $params 是從 URI 收集的參數(shù)數(shù)組.您只需要取出 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.
您也可以使用 Reflection 來做到這一點(diǎn),但這通常是比使用上述方法慢.
You could also do this using Reflection, but this typically is slower than using the above method.
這篇關(guān)于將 URL 路由轉(zhuǎn)換為函數(shù)參數(shù) php mvc的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網(wǎng)!