我试图了解使用URL路由(URL分派)而不仅仅是运行来自不同脚本的代码的好处。除了更漂亮的网址(可以使用任何一种模型通过htaccess实现),为什么我会直接/存档/到dispatcher.php?path = / archive /而不是简单地重写/ * /到* .php?在代码重用方面是否更好?组织?错误处理?
你有没有从一个型号换到另一个型号?你为什么这样做?转换需要做多少工作?
对于上下文,我目前正在使用多个脚本方法。环境是Apache + PHP。这是一个中等规模的项目(40多个顶级php页面)。
答案 0 :(得分:6)
路由的一个主要优点是您可以有条件地执行此操作,根据用户数据,会话值,一天中的时间或其他任何内容来确定地址路由的位置。我的大多数项目都太简单了,不能使用这种方法,但如果你进入一个更复杂的系统,我认为控制代码中的路由会给你一些额外的能力和选择。
答案 1 :(得分:1)
正如其他人所说,制作精美网址非常棒。一直手动更新.htaccess是绝对痛苦的。
我个人最喜欢的URL路由的好处是你的应用程序不必在每个页面上使用讨厌的包含,因为你可以在路由页面的php代码中执行此操作。你也可以在那里写一个class autoloader,你再也不用写'include'这个词了。
如果使用相对路径而不是绝对路径,则可以始终执行与路由文件位置相关的所有操作,而不必跟踪您所在的文件夹,并在决定移动时修复所有这些文件从一个文件夹到另一个文件夹。
定义应用程序范围的常量非常容易。例如,我从未在任何地方硬编码我的网站名称,而是选择使用echo SITE_NAME;
,然后我的设计师决定两次更改网站名称。幸运的是,这个在顶层定义的常量可以在任何地方访问,而不必在每个页面上都包含。
另一个好处是,当你拥有一个顶级文件时,可以很容易地执行错误,异常和404日志记录/处理。