【发布时间】:2016-10-11 19:24:22
【问题描述】:
我正在创建一个在页面上列出产品的 Laravel 5.1 应用程序。现在数据库中的每个产品都有产品详细信息页面的 url。我已经完成了一个导出所有这些 url 并将它们转换为 laravel 路由的方法,这些路由被写入一个文件并包含在 laravel 路由中。我这样做是为了能够使用 laravel 的 routes:cache 命令优化路由。现在我的问题实际上是关于优化,哪种方式会更好,有一个包含所有路线的文件,比如说 100K 路线,或者有一个入口点来比较数据库中的相关路线并返回相应的产品。
【问题讨论】:
-
后者。不要创建无数条路线。简化您的路线,让它们包含一个参数,然后您将其用于数据库查找。绝对的。
-
@Here2Help,我不太确定我是否完全同意这一点,向请求添加数据库查找只会增加请求时间,甚至可能对性能有害。也许一堆缓存会对情况有所帮助,但我认为这是个坏主意。
-
@vsharper 数据库查找正是产品驱动型网站应该做的事情。什么,你认为他应该在每次添加新产品时更新他的路线文件?那就干脆建个静态网站吧,忘掉 Laravel 和 PHP。
-
@Here2Help,恰恰相反,我认为下面的答案足以满足我的意思。因此路由将不可避免地将参数传递给将处理请求的控制器,而不是路由。我认为这个问题是在暗示数据库中存储了 100k 条路由,这同样是邪恶的。
-
@vsharper 我不同意你的评论。在网站上,产品的唯一入口点是 CSV 文件导入。每次导入文件时,虚拟路由组件都会将路由添加到站点。
标签: php laravel laravel-5 laravel-5.1 laravel-routing