最近在維護一個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開發者使用。