使用 OOP 在 PHP 中编写/设计 URL 路由器的技巧

发布于 2024-08-17 18:34:25 字数 361 浏览 9 评论 0原文

我喜欢 Zend_Controller_Router_Rewrite 的优雅以及它使用的各种路由类。

我想编写一个非常相似的路由系统作为独立组件,这样我就可以将 URL 转换为一组参数并再次将它们组装回来。这个想法是使用它们来选择,例如,基于每个路径的 URL 规范化处理程序。

我考虑过扩展实际的 Zend Controller Route 类来创建我自己的。但是,这些类似乎在 Zend MVC 的领域语言中非常深入地路由(如果你能原谅双关语的话)。

您知道可在我的项目中使用的独立路由包/类集吗?

如果我自己编写的话,zend router 是我可以使用的任何特定设计模式的示例吗?

您对编写 URI 路由器有什么建议吗?

I love the elegance of Zend_Controller_Router_Rewrite and the various route classes it uses.

I'd like to write a very similar routing system as a standalone component so I can translate URLs into a set of parameters and assemble them back again. The idea is to use them to select, say, an URL normalization handler on a per-path basis.

I have considered extending the actual Zend Controller Route classes to make my own. But, these classes seem very deeply routed (if you'd excuse the pun) in the domain language of the Zend MVC.

Do you know of a standalone routing package/set of classes available to use in my project?

Is the zend router an example of any particular design pattern I could use if i write my own?

Do you have any tips on writing a URI router?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

满意归宿 2024-08-24 18:34:25

查看 Alloy PHP 框架中的 URL 路由器:
http://alloyframework.org/manual/url-router/

有一个关于在框架之外使用它作为独立库,恕我直言,它是一个比 Zend_Controller_Router_Rewrite 更优雅的解决方案。

Check out the URL Router in the Alloy PHP Framework:
http://alloyframework.org/manual/url-router/

There is a specific heading about using it outside the framework as a standalone library, and IMHO it is a much more elegant solution than Zend_Controller_Router_Rewrite.

还如梦归 2024-08-24 18:34:25

我希望我没有误解你的问题。

我没有使用Zend_Controller_Router,但是codeigniter和cakephp router通过'/'爆炸了一个url参数,并将它们映射到不同的控制器和方法,我认为从头开始实现一个并不难。

i hope i do not mis-understand your question.

i haven't used Zend_Controller_Router, but codeigniter and cakephp router explode a url parameter by '/', and map them to different controllers and methods, which, i think, is not difficult to implement one from scratch.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文