我正在构建一个 PHP 框架来结束我的课程,并且我坚持使用一个解决方案来匹配一些自定义路由和标准路由。
我的框架路线与 Zend Framework 1 的路线相似。
它与标准路线相匹配
/module/controller/action/param/value/param2/value2/paramn/valuen
URI 部分是可选的,/ 路由指向应用程序模块、索引控制器和索引操作,没有参数和值。
我被困在一些自定义路线中,我是这样定义的:
/blog/:postname/
/admin/logout/
/blog/posts/:year/:category/
/about/
该路由必须与此示例 URI 请求匹配。
/blog/my-first-post/
/blog/my-first-post/referenced/facebook/
/admin/logout/
/admin/logout/session-id/246753/action
/blog/posts/2013/turism/
/blog/posts/2013/turism/page/2/
但不必匹配标准路线。自定义路由必须在标准路由之前。标准路线的一些示例。例子:
/
/application/
/application/index/
/application/index/index/
/blog/posts/view/id/3/
/admin/login/
/admin/login/logout (that one are the
/admin/blog/posts/edit/id/3/
/admin/blog/posts/edit/id/3/success/false/
我发现优雅地做到这一点的方法是使用 RegEx 进行比赛,但我已经尝试学习 RegEx 一个多月了,但并没有完全掌握。
PS:匹配当前路由后,我必须将 :variable 与 REQUEST_URI 中的相关位置绑定。
谢谢你的帮助。