
將Enlightn視為您的績效和安全顧問。 Enlightn將“查看”您的代碼和服務器配置,並為您提供有關提高性能,安全性和可靠性的可行建議!
Enlightn OSS(開源軟件)版本具有66個自動檢查,可掃描您的應用程序代碼,Web服務器配置和路由,以識別性能瓶頸,可能的安全性漏洞和代碼可靠性問題。
Enlightn Pro(商業)可在Enlightn網站上購買,並提供64張自動支票(總計131張支票)。
可用的131項檢查中的每一個都有充分的記錄。您可以在此處找到完整的文檔。
| 啟蒙 | 拉拉維爾 | 拉斯坦 | phpstan |
|---|---|---|---|
| 1.x | 6.x-9.x | 0.6x-1.x | 0.12x-1.1x |
| 2.x | 9.x-11.x | 2.x | 1.4x+ |
注意:相同的兼容性矩陣適用於Enlightn Pro版本。
您可以使用Composer軟件包管理器將Enlightn安裝到項目中:
composer require enlightn/enlightn安裝Enlightn後,您可以使用供應商發布其資產:Publish Artisan命令:
php artisan vendor:publish --tag=enlightn注意:如果您需要安裝Enlightn Pro,請訪問此處的Enlightn網站上的文檔。
安裝Enlightn後,只需運行enlightn Artisan命令即可運行Enlightn:
php artisan enlightn如果您想在終端之外的Enlightn Web UI中查看報告,則可以添加--report標誌:
php artisan enlightn --report如果您希望運行特定的分析儀類,則可以將其指定為可選參數:
php artisan enlightn Enlightn \ Enlightn \ Analyzers \ Security \ CSRFAnalyzer Enlightn \ EnlightnPro \ Analyzers \ Security \ DirectoryTraversalAnalyzer請注意,班級名稱應完全合格,並以上面的雙重斜線逃脫。
如果您想獲得完整的Enlightn體驗,建議您至少在生產中運行一次Enlightn。這是因為Demlightn的一些檢查是特定於環境的。因此,只有當您的應用程序環境生產時,它們才可能會觸發。
如果您不想在生產上運行,則可以通過將APP_ENV設置為生產,設置服務和配置,並在本地運行生產部署腳本來模擬生產環境。然後運行Enlightn Artisan命令。
默認情況下, enlightn工匠命令突出顯示了文件路徑,關聯的行號和每個失敗檢查的消息。如果您想顯示每行的詳細錯誤消息,則可以使用--details選項:
php artisan enlightn --details如果您希望將Enlightn與CI集成,則可以在CI/CD工具中運行Enlightn時簡單地觸發--ci選項:
php artisan enlightn --ci如果您想在Enlightn Web UI中查看CI報告,則可以添加--report標誌。請記住,將您的項目憑據添加到您的config/enlightn.php文件中,如下所述。
php artisan enlightn --ci --report分析儀可以在CI模式下運行的Enlightn預配置。因此,以上命令不包括需要完整設置的分析儀(例如,使用動態分析)。
有關CI集成的更多信息,請參閱啟蒙文檔。
有時,尤其是在CI環境中,您可能需要將當前報告的錯誤列表聲明為“基線”。這意味著當前錯誤將不會在隨後的運行中報告,並且只會標記新錯誤。
要自動生成基線,您可以運行enlightn:baseline工匠命令:
php artisan enlightn:baseline如果您希望以CI模式運行此命令,則可以使用--ci選項:
php artisan enlightn:baseline --ci有關建立基線的更多信息,請參考文檔。
Enlightn提供了一個漂亮的Web UI儀表板,您可以在其中查看從CI或計劃的命令運行觸發的Enlightn報告。
Web UI對於所有用戶都是免費的,包括以下內容:
要訪問Web UI,您需要做的就是在Enlightn網站上免費註冊,並遵循此處提到的說明。
除了將Enlightn與您的CI/CD工具集成在一起之外,也可以按照常規頻率(例如每日或每週)這樣的啟蒙跑步來安排一個好習慣:
// In your app/Console/Kernel.php file:
/**
* Define the application's command schedule.
*
* @param IlluminateConsoleSchedulingSchedule $schedule
* @return void
*/
protected function schedule ( Schedule $ schedule )
{
$ schedule -> command ( ' enlightn --report ' )-> runInBackground ()-> daily ()-> at ( ' 01:00 ' );
}這將使您能夠監視Enlightn的動態分析檢查,該檢查通常被排除在CI中。可以在Enlightn Web UI上查看報告。
Enlightn提供了一個GitHub機器人,該機器人可以準備一份報告,以突出顯示失敗的支票,並在引入新問題的代碼線上添加評論評論。
要與啟蒙GitHub機器人集成,請參閱文檔。
所有失敗的檢查都將包括描述為什麼它們與相關的代碼(如果適用)以及指向特定檢查文檔的鏈接的描述。
最後,在進行了所有檢查之後, enlightn Artisan命令將輸出一張成績單,其中包含有關通過,失敗或跳過多少支票的信息和多少百分比。
所示為“不適用”的支票不適用於您的特定申請並跳過。例如,CSRF分析儀不適用於無狀態應用程序。
“錯誤”行下報告的檢查表明分析過程中有例外的分析儀。通常,這不應該發生,但是如果這樣做,將顯示關聯的錯誤消息,並且可能與您的應用程序有關。
一個好的做法是每次部署代碼或推出新版本時運行Enlightn。建議將Enlightn與您的CI/CD工具集成在一起,以便為每個推送或新版本觸發它。
除了自動化的CI檢查外,您還應該使用上述計劃的控制台命令在常規頻率上運行Enlightn。這將允許您監視動態分析檢查,該檢查通常從CI中排除。
只有MacOS和Linux系統才能用於Enlightn。 Windows當前不支持。
感謝您考慮為Enlightn做出貢獻!可以在此處找到貢獻指南。
我們的支持政策可以在啟蒙文檔中找到。
Enlightn OSS(在此GitHub倉庫上)由LGPL V3(或更高版本)許可獲得許可。
Enlightn Pro已獲得商業許可證的許可。