最近在维护一个laravel项目时,发现应用的性能存在一些瓶颈。其中,分页链接的不安全性(使用http而非https)和冗余的url结构(尾部斜杠等)尤其突出。这些问题不仅影响用户体验,也增加了安全风险。此外,我们使用了fastly cdn,需要更精细地控制缓存失效策略。
最初,我尝试通过手动修改代码来解决这些问题,但这种方法不仅费时费力,而且难以维护。在寻找更优雅的解决方案时,我发现了Solar Investments/support这个包。
这个包提供了多个方便的中间件,可以轻松解决上述问题。安装非常简单,只需在项目根目录下执行:
composer require solar-investments/support
接下来,我将重点介绍几个我实际应用的中间件:
-
EnableSecurePaginationLinks: 这个中间件自动将分页链接中的http协议替换为https,有效解决了分页链接的安全问题。集成后,再也不用担心用户访问不安全的分页链接了。
-
RemoveTrailingSlash: 这个中间件自动移除URL末尾的斜杠,简化了URL结构,并避免了重复内容导致的SEO问题。
-
SetFastlySurrogateKey: 这是我最喜欢的中间件之一。通过配置config/fastly.php文件,我可以为不同的URL路径设置不同的Surrogate Key,实现更精细的缓存控制。这极大地提高了缓存的效率,并减少了不必要的缓存失效。 例如,我可以为/meals路径下的所有子路径(/meals/breakfast, /meals/lunch等)设置相同的Surrogate Key,从而方便地清除该路径下的所有缓存。
除了中间件,该包还包含一些有用的测试Trait,例如SkipTestWhenRunningCI,可以方便地跳过在CI环境中运行的测试,提高测试效率。
集成Solar Investments/support包后,我的应用性能得到了显著提升。分页链接更加安全,URL结构更加简洁,缓存效率也得到了优化。更重要的是,整个过程非常简单快捷,极大地节省了开发时间。
总结来说,Solar Investments/support包是一个非常实用且高效的laravel扩展包。它提供了一系列预构建的中间件和工具,可以有效解决许多常见的性能问题,提高开发效率,并增强应用的安全性。强烈推荐给所有laravel开发者使用。