PHP 桌面端框架NativePHP for Desktop v2 發(fā)布!
PHP 桌面端框架NativePHP for Desktop v2 發(fā)布!
NativePHP 團隊正式發(fā)布了 NativePHP for Desktop v2!這是一個重要的主要版本更新,雖然包含一些向后兼容性的破壞性變更,但帶來了顯著增強的安全默認設置和許多實用的新特性。
讓我們一起來看看這個版本有哪些值得關注的新內(nèi)容和變更。
原文 PHP 桌面端框架NativePHP for Desktop v2 發(fā)布!
v2 的新特性
???? 新倉庫,新面貌
v2 已在統(tǒng)一的倉庫 nativephp/desktop 下發(fā)布。這次更新將之前的兩個獨立倉庫(nativephp/laravel 和 nativephp/electron)合并到了一個項目中。
這樣的調整不僅與 nativephp/mobile 保持了一致性,也使得整個項目更易于維護,為未來的功能迭代提供了更好的基礎。
值得注意的是,舊倉庫仍然可用,官方團隊會繼續(xù)維護 v1 一段時間,但建議開發(fā)者盡快升級到 v2 以享受新特性。
?? 默認增強安全性
v2 在安全性方面做了重要改進,開箱即用地提供了更好的安全默認設置。新版本默認禁用了 nodeIntegration 并啟用了 contextIsolation,嚴格遵循 Electron 的安全最佳實踐。這一變更能夠有效保護應用程序免受潛在的安全漏洞威脅。
如果你的項目需要使用舊的行為模式,也不用擔心!可以通過 Window::webPreferences() 方法輕松地為特定窗口重新啟用 nodeIntegration。
?? 調整 Electron 后端
如果需要對底層 Electron 應用程序進行深度定制,可以使用以下命令將其發(fā)布出來:
php artisan native:install --publish
這個命令會將 Electron 項目導出到 {project-root}/nativephp/electron 目錄,讓開發(fā)者能夠完全掌控 NativePHP 的所有內(nèi)部實現(xiàn)細節(jié)。
?? 在應用中捆綁額外文件
開發(fā)者們期待已久的功能終于實現(xiàn)了!v2 支持在應用程序中捆綁額外的文件,這些文件可以在運行時被訪問。這個特性非常適合用來分發(fā)額外的資源文件,比如預編譯的可執(zhí)行文件。
這一功能為 NativePHP 應用程序的能力邊界開辟了全新的可能性。
? 新的 ChildProcess::node() 方法
v2 新增了一個便捷的方法,可以直接使用捆綁的 Node.js 運行時來執(zhí)行 JavaScript 文件:
ChildProcess::node(
cmd: 'resources/js/filesystem-watcher.js',
alias: 'filesystem-watcher'
);
- 無需預先編譯 JavaScript 文件
- 在所有平臺上利用相同的 Node.js 版本
在測試方面,ChildProcess fake 也提供了相應的方法,可以使用 ChildProcess::assertNode() 來驗證 Node 調用。
?? 菜單欄窗口的 WebPreferences
v2 將 webPreferences 方法的支持擴展到了菜單欄窗口!在之前的版本中,這個強大的配置選項僅適用于常規(guī)窗口。現(xiàn)在開發(fā)者對菜單欄應用程序也擁有了同樣級別的控制能力。
?? 新的 Shell fake
新版本為測試提供了 Shell facade 的 fake 功能,允許開發(fā)者攔截和斷言 shell 交互(如打開文件、顯示文件夾或將項目移至回收站)而無需真正執(zhí)行這些操作。
Shell::assertOpenedExternal('https://some-url.test');
底層升級:Electron v38
v2 將底層框架升級到了最新的 Electron v38,這意味著開發(fā)者可以享受到現(xiàn)代 Electron 基礎帶來的所有性能改進、安全增強和新功能。
重大變更 ??
與任何主要版本一樣,有一些需要注意的重大變更:
macOS 支持變更
重要提示: v2 不再支持 macOS Catalina 和 Big Sur。這個變更是由于升級到 Electron v38 所致,目的是與 Apple 官方支持的操作系統(tǒng)版本保持一致。雖然大多數(shù)用戶不會受到影響,但建議在升級前先檢查一下項目的部署目標系統(tǒng)。
安全默認設置
如前文所述,nodeIntegration 在 v2 中默認被禁用了。雖然這提高了應用的安全性,但可能會影響到依賴此功能的現(xiàn)有應用程序。好在開發(fā)者可以在需要的地方通過 Window::webPreferences() 方法輕松重新啟用它。
升級到 v2
新版本的包現(xiàn)在可以在 nativephp/desktop 倉庫中獲取。具體的遷移步驟可以參考官方提供的升級指南。
開始構建!
NativePHP for Desktop v2 現(xiàn)已正式可用。無論是升級現(xiàn)有應用還是開啟新項目,這些新特性都值得嘗試。
NativePHP for Desktop 始終保持免費和開源,項目團隊歡迎社區(qū)的貢獻和贊助,共同推動項目的持續(xù)發(fā)展。
如果你正在使用 Laravel 開發(fā)桌面應用,不妨試試這個強大的工具! ??

浙公網(wǎng)安備 33010602011771號