NativePHP使用PHP創(chuàng)建桌面應(yīng)用程序
PHP 在我心中占據(jù)著特殊的位置。它是我的第一份工作,我記得我在家里花了無數(shù)個小時做一些小項(xiàng)目。我非常想用 PHP 創(chuàng)建桌面應(yīng)用程序,但我從來沒有做到過。
現(xiàn)在,感謝 NativePHP,我可以了。 NativePHP 追隨 Slack、Discord 和 Trello 等流行應(yīng)用程序的腳步,將您的 PHP 應(yīng)用程序包裝在 Electro 中。它允許后端邏輯在 PHP 上運(yùn)行,而 UI 則使用 HTML、CSS 和任何 JavaScript 框架構(gòu)建。
使用 NativePHP 設(shè)置場景
我決定通過將 Laravel 應(yīng)用程序轉(zhuǎn)換為桌面應(yīng)用程序來深入研究 NativePHP。為了讓你更清楚地了解,讓我們從一個基本的設(shè)置開始。我正在開發(fā)的應(yīng)用程序有一個 Laravel 后端和一個 React 前端,以 MySQL 數(shù)據(jù)庫作為其骨干。
安裝 NativePHP
首先,我們通過 Composer 安裝 NativePHP:
$ composer require nativephp/electron
這擴(kuò)展了 Laravel 的 artisan 工具,增加了一組新的 NativePHP 特定命令,例如 php artisan native
顯示了構(gòu)建和管理本地應(yīng)用程序的命令列表。
接下來,運(yùn)行 php artisan native:install
來設(shè)置基本結(jié)構(gòu)。
特別值得注意的是兩個文件:
config/nativephp.php
用于應(yīng)用程序配置app/Providers/NativeAppServiceProvider.php
用于啟動序列和注冊本機(jī)組件。
運(yùn)行開發(fā)構(gòu)建
應(yīng)用程序設(shè)置完畢后,我們可以開始開發(fā)構(gòu)建:
$ php artisan native:serve & $ npm run dev &
我們需要啟動 PHP 和 UI 的開發(fā)服務(wù)器,在本例中, npm 使用 Vite 來構(gòu)建并為 Electron 窗口提供 UI 組件。
NativePHP 將應(yīng)用程序與 Electron 捆綁在一起,嵌入了 PHP 解釋器。在開發(fā)過程中,它將后端切換到本地 SQLite 數(shù)據(jù)庫,因此我們需要使用 php artisan native:migrate
運(yùn)行遷移來設(shè)置新數(shù)據(jù)庫。
添加本地特性
為了增強(qiáng)桌面體驗(yàn),NativePHP 允許集成本地元素,如通知、菜單欄和熱鍵。
我通過編輯 app/Providers/NativeAppServiceProvider.php
在應(yīng)用啟動時添加了一個簡單的通知,這有助于我們給應(yīng)用帶來我們想要的原生感覺。
首先,我們添加通知界面:
use Native\Laravel\Facades\Notification;
然后,在 boot
函數(shù)中,在窗口打開后添加以下代碼:
Notification::title('Application Started') ->message('This message is comming from NativePHP running on Electron') ->show(); }
保存后,熱重載功能應(yīng)該會重啟應(yīng)用并顯示通知(如果看不到通知,請檢查是否沒有啟用 Electron 的通知)。
構(gòu)建發(fā)布
對于生產(chǎn)版本,我們在 config/nativephp.php
中填寫發(fā)布細(xì)節(jié)。值得注意的是,環(huán)境文件 ( .env
) 被綁定到構(gòu)建中,因此敏感數(shù)據(jù)必須使用 cleanup_env_keys
進(jìn)行清理。
要為你的操作系統(tǒng)構(gòu)建一個版本,只需運(yùn)行:
$ php artisan native:build
這個過程生成各種包,包括 DMG、Zip 文件和應(yīng)用程序的二進(jìn)制文件。
我們還可以使用以下命令構(gòu)建 Windows 和 Linux 包:
$ php artisan native:build win $ php artisan native:build linux
在構(gòu)建過程完成后,我們應(yīng)該得到一個 setup.exe
、AppImage 和 .deb
文件。
NativePHP 的注意事項(xiàng)
在深入了解 NativePHP 之前,需要考慮以下幾點(diǎn):
- Alpha 階段: 目前,NativePHP 處于 alpha 階段,更傾向于 beta 體驗(yàn)。
- Laravel 框架優(yōu)先:雖然 NativePHP 聲稱與任何 PHP 框架兼容,但其設(shè)計(jì)是為 Laravel 量身定制的。
- 數(shù)據(jù)庫限制: 數(shù)據(jù)庫支持僅限于本地 SQLite,創(chuàng)建時會替換現(xiàn)有的數(shù)據(jù)庫設(shè)置。
- 交叉編譯限制:雖然它支持針對不同操作系統(tǒng)的構(gòu)建,但還不支持跨架構(gòu)的構(gòu)建。例如,在 M1 芯片上構(gòu)建的二進(jìn)制文件無法在大多數(shù) Linux 和 Windows 機(jī)器上運(yùn)行(ARM 構(gòu)建無法在 Intel 芯片上運(yùn)行)。一個變通方法是使用不同的機(jī)器或 CI/CD 管道進(jìn)行構(gòu)建。
結(jié)論
NativePHP,即使在 alpha 階段,對于 PHP 開發(fā)者來說,也是一個令人印象深刻且用戶友好的框架。它為基于 PHP 的桌面應(yīng)用程序打開了一個新的可能性世界。如果你正在從事 PHP 開發(fā),NativePHP 絕對是一個值得關(guān)注的項(xiàng)目。
以上就是NativePHP使用PHP創(chuàng)建桌面應(yīng)用程序的詳細(xì)內(nèi)容,更多關(guān)于NativePHP PHP創(chuàng)建桌面應(yīng)用的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
php 使用mpdf實(shí)現(xiàn)指定字段配置字體樣式的方法
前兩天在做一個pdf導(dǎo)出功能,使用的插件是kartik-v/yii2-mpdf,此插件使用的是mpdf。接下來通過本文給大家介紹php 使用mpdf實(shí)現(xiàn)指定字段配置字體樣式的方法,需要的朋友可以參考下2019-07-07針對thinkPHP5框架存儲過程bug重寫的存儲過程擴(kuò)展類完整實(shí)例
這篇文章主要介紹了針對thinkPHP5框架存儲過程bug重寫的存儲過程擴(kuò)展類,結(jié)合完整實(shí)例形式給出了修復(fù)thinkPHP5存儲過程原有bug的擴(kuò)展類定義與使用方法,需要的朋友可以參考下2018-06-06PhpStorm本地?cái)帱c(diǎn)調(diào)試的方法步驟
php代碼在調(diào)試時,經(jīng)常是print_r或者var_dump來斷點(diǎn),但是當(dāng)項(xiàng)目較為復(fù)雜的情況下,這么做效率就非常低下了,斷點(diǎn)調(diào)試就非常好的解決了這個問題,這篇文章主要介紹了PhpStorm本地?cái)帱c(diǎn)調(diào)試的方法步驟,感興趣的小伙伴們可以參考一下2018-05-05Zend Framework教程之連接數(shù)據(jù)庫并執(zhí)行增刪查的方法(附demo源碼下載)
這篇文章主要介紹了Zend Framework教程之連接數(shù)據(jù)庫并執(zhí)行增刪查的方法,結(jié)合實(shí)例形式詳細(xì)分析了Zend Framework數(shù)據(jù)庫的配置及執(zhí)行增刪改查等操作的相關(guān)實(shí)現(xiàn)方法,需要的朋友可以參考下2016-03-03PHP實(shí)現(xiàn)笛卡爾積算法的實(shí)例講解
這篇文章主要介紹了PHP實(shí)現(xiàn)笛卡爾積算法的實(shí)例內(nèi)容以及相關(guān)知識點(diǎn)總結(jié),有需要的朋友們參考下。2019-12-12php根據(jù)身份證號碼計(jì)算年齡的實(shí)例代碼
我們只要知道身份證的生成規(guī)則就可以了,像下面我們從指定位置到多少位就是出日期了,然后我們把日期轉(zhuǎn)成時間戳然后進(jìn)行加減運(yùn)算就得出了年齡了,下面我們看實(shí)例2014-01-01