本文整理汇总了PHP中router::arguments方法的典型用法代码示例。如果您正苦于以下问题:PHP router::arguments方法的具体用法?PHP router::arguments怎么用?PHP router::arguments使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类router
的用法示例。
在下文中一共展示了router::arguments方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: run
/**
* 应用程序执行
*
*
* @return null
*/
public static function run()
{
$className = application::getControllerName();
$classPath = application::getControllerPath();
$method = application::getControllerMethod();
$arguments = router::arguments();
//加载controller
if (file_exists($classPath)) {
zotop::load($classPath);
} else {
zotop::run('system.404', array('filepath' => $classPath));
return false;
}
if (class_exists($className, false)) {
$controller = new $className();
if (method_exists($controller, $method) && $method[0] != '_') {
call_user_func_array(array($controller, '__before'), $arguments);
call_user_func_array(array($controller, $method), $arguments);
call_user_func_array(array($controller, '__after'), $arguments);
return true;
}
//当方法不存在时,默认调用类的_empty()函数,你可以在控制器中重写此方法
return call_user_func_array(array($controller, '__empty'), array($method, $arguments));
}
return false;
}
示例2: execute
public static function execute()
{
if ($uri = trim(router::$uri, '/')) {
router::$arguments = explode('/', $uri);
router::$module = array_shift(router::$arguments);
router::$controller = array_shift(router::$arguments);
router::$action = array_shift(router::$arguments);
} else {
//当$uri 为空,则尝试Query_string模式
router::$arguments = $_GET;
router::$module = arr::take('module', router::$arguments);
router::$controller = arr::take('controller', router::$arguments);
router::$action = arr::take('action', router::$arguments);
}
}
示例3: execute
/**
* 解析URI
*
* URI 由模块名/控制器/动作/参数组成,采用如下的格式:
*
* @code php
* module/controller/action/param1/param2
* @endcode
*
*/
public static function execute()
{
$u = explode('/', trim(router::$uri, '/'));
//获取namespace 和 arguments
$namespace = implode('/', array_slice($u, 0, 3));
$arguments = array_slice($u, 3);
$namespace = zotop::filter('zotop.namespace', $namespace, &$arguments);
if ($namespace) {
list(router::$module, router::$controller, router::$action) = explode('/', $namespace);
}
//处理参数
for ($i = 0, $cnt = count($arguments); $i < $cnt; $i++) {
$arguments[$i] = rawurldecode($arguments[$i]);
}
router::$arguments = $arguments;
}
示例4: run
/**
* 应用程序执行
*
*
* @return null
*/
public static function run()
{
$classname = router::controllerName();
$filepath = router::controllerPath();
$method = router::controllerMethod();
$arguments = router::arguments();
//加载controller
if (file_exists($filepath)) {
zotop::load($filepath);
}
if (class_exists($classname, false)) {
$controller = new $classname();
if (method_exists($controller, $method) && $method[0] != '_') {
return call_user_func_array(array($controller, $method), $arguments);
} else {
//当方法不存在时,默认调用类的_empty()函数,你可以在控制器中重写此方法
return call_user_func_array(array($controller, '_empty'), $arguments);
}
}
zotop::run('system.404', array('filepath' => $filepath));
}
示例5: execute
/**
* 解析URI
*
* URI 由模块名/控制器/动作/参数组成,采用如下的格式:
*
* @code php
* module/controller/action/param1/vlaue1/param2/value2
* @endcode
*
*/
public static function execute()
{
if ($uri = trim(router::$uri, '/')) {
router::$arguments = explode('/', $uri);
//分配module、controller、action
router::$module = array_shift(router::$arguments);
router::$controller = array_shift(router::$arguments);
router::$action = array_shift(router::$arguments);
//处理参数
$arguments = array();
for ($i = 0, $cnt = count(router::$arguments); $i < $cnt; $i++) {
$arguments[$i] = rawurldecode(router::$arguments[$i]);
}
router::$arguments = $arguments;
//unset($_GET['zotop']);
//$_GET = array_merge($_GET, array('module'=>router::$module,'controller'=>router::$controller,'action'=>router::$action), $arguments);
} else {
//当$uri 为空,则尝试Query_string模式
router::$arguments = $_GET;
router::$module = arr::take('module', router::$arguments);
router::$controller = arr::take('controller', router::$arguments);
router::$action = arr::take('action', router::$arguments);
}
}
示例6: arguments
public static function arguments()
{
return router::arguments();
}