栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

PHP应用程序URL路由

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

PHP应用程序URL路由

我更喜欢使用reg
ex而不是制作自己的格式,因为这是常识。我写了一个小类,使我可以嵌套这些正则表达式路由表。我曾经使用过类似的通过继承实现的方法,但是它不需要继承,因此我重写了它。

我对一个键进行正则表达式,然后映射到我自己的控制字符串。请看下面的例子。我访问了

/api/related/joe
我的路由器类,创建了一个新对象
ApiController
并调用它的方法
relateddocuments(array('tags'=> 'joe'));

// the 12 strips the subdirectory my app is running in$index = urldepre(substr($_SERVER["REQUEST_URI"], 12));Route::process($index, array(    "#^api/related/(.*)$#Di"    => "ApiController/relateddocuments/tags",    "#^thread/(.*)/post$#Di"    => "ThreadController/post/title",    "#^thread/(.*)/reply$#Di"   => "ThreadController/reply/title",    "#^thread/(.*)$#Di"         => "ThreadController/thread/title",    "#^ajax/tag/(.*)/(.*)$#Di"  => "TagController/add/id/tags",    "#^ajax/reply/(.*)/post$#Di"=> "ThreadController/ajaxPost/id",    "#^ajax/reply/(.*)$#Di"     => "ArticleController/newReply/id",    "#^ajax/toggle/(.*)$#Di"    => "ApiController/toggle/toggle",    "#^$#Di"         => "HomeController",));

为了减少错误并简化操作,您可以细分表。这样,您可以将路由表放入它控制的类中。以上面的示例为例,您可以将三个线程调用合并为一个。

Route::process($index, array(    "#^api/related/(.*)$#Di"    => "ApiController/relateddocuments/tags",    "#^thread/(.*)$#Di"         => "ThreadController/route/uri",    "#^ajax/tag/(.*)/(.*)$#Di"  => "TagController/add/id/tags",    "#^ajax/reply/(.*)/post$#Di"=> "ThreadController/ajaxPost/id",    "#^ajax/reply/(.*)$#Di"     => "ArticleController/newReply/id",    "#^ajax/toggle/(.*)$#Di"    => "ApiController/toggle/toggle",    "#^$#Di"         => "HomeController",));

然后定义ThreadController :: route就像这样。

function route($args) {    Route::process($args['uri'], array(        "#^(.*)/post$#Di"    => "ThreadController/post/title",        "#^(.*)/reply$#Di"   => "ThreadController/reply/title",        "#^(.*)$#Di"         => "ThreadController/thread/title",    ));}

您也可以在右侧为路由字符串定义任何默认值。只是不要忘了将它们记录下来,否则您将使人们感到困惑。如果您在右侧未包含函数名称,则当前正在调用索引。这是我当前的代码。您可能需要更改它以处理您喜欢的错误和/或默认操作。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/402932.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号