NativePHP:让 PHP 开发桌面应用程序更轻松

admin 2023-12-07 579 阅读 0评论

NativePHP 将您的 PHP 应用程序打包成一个可独立运行的 Web 应用程序,类似于 SlackDiscord 和 Trello 等流行应用程序。后端逻辑仍由 PHP 提供,而 UI 则可以使用 HTMLCSS 和任何 JavaScript 框架构建。

为了深入研究 NativePHP,我决定将一个 Laravel 应用程序转换为桌面应用程序。为了让您更好地理解,让我们从基本设置开始。以下是应用程序的基本设置:后端由 Laravel 提供,前端由 React 提供,数据库由 MySQL 提供。

安装NativePHP

首先,我们使用 Composer 安装 NativePHP

composer require nativephp/electron

这会将 NativePHP 添加到您的 Laravel 应用程序中,并通过一组新的 NativePHP 特定命令扩展 Laravel 的 artisan 工具。例如,您可以使用 php artisan native 命令来查看用于构建和管理本机应用程序的命令列表。

接下来,运行 php artisan native:install 命令会建立基本结构。

其中两个文件特别值得注意:

  • config/nativephp.php 用于应用程序配置。
  • app/Providers/NativeAppServiceProvider.php 用于启动顺序和注册本机组件。

开发构建

设置应用程序后,我们就可以开始开发构建了。

php artisan native:serve &
npm run dev &

这将启动 PHP 和 UI 的开发服务器。在本例中,npm 使用 Vite 构建 UI 组件并将其提供给 Electron 窗口。

NativePHP 将应用程序与 Electron 捆绑在一起,并嵌入了 PHP 解释器。在开发过程中,它将后端切换到本地 SQLite 数据库。因此,我们需要运行迁移命令 php artisan native:migrate 来设置新数据库。

添加本机功能

为了增强桌面体验,NativePHP 支持集成本机元素,例如通知、菜单栏和热键。您可以在文档页面中查看完整的元素列表。

我通过编辑 app/Providers/NativeAppServiceProvider.php,在应用程序启动时添加了一个简单的通知。这有助于我们为应用程序提供原生感觉。

首先,我们添加通知外观:

use Native\Laravel\Facades\Notification;

然后,在 boot() 函数中,我添加以下行,在窗口打开后显示通知:

Notification::title('Application Started')
    ->message('This message is coming from NativePHP running on Electron')
    ->show();

保存后,热重载功能应该重新启动应用程序并显示通知。如果您没有看到通知,请检查您是否已启用来自 Electron 的通知。

构建发布

对于生产环境的构建,您需要在 config/nativephp.php 文件中填写发布详细信息。请注意,环境文件 (.env) 将被捆绑在构建中,因此您需要使用 cleanup_env_keys 方法来清理敏感数据。

要为您的操作系统构建版本,请运行以下命令:

php artisan native:build

此过程将生成各种捆绑包,包括 DMGZip 文件和应用程序的二进制文件。

我们还可以使用以下命令来构建 Windows 和 Linux 捆绑包:

php artisan native:build win
php artisan native:build linux

构建过程完成后,您将获得以下文件:

  • setup.exe(Windows 安装程序)
  • AppImage(Linux 应用程序)
  • .deb(Linux 软件包)

NativePHP 的注意事项

在深入研究 NativePHP 之前,请注意以下事项:

  • Alpha 阶段NativePHP 仍处于 alpha 阶段,因此可能存在缺陷或不稳定性。
  • Laravel 框架NativePHP 专为 Laravel 设计,虽然与其他 PHP 框架兼容,但可能存在兼容性问题。
  • 数据库限制NativePHP 仅支持本地 SQLite 数据库,在构建时将替换现有的数据库设置。
  • 交叉编译限制NativePHP 支持针对不同操作系统进行构建,但不支持跨架构构建。例如,在 Apple M1上构建的二进制文件无法在大多数 Linux 和 - Windows 机器上运行。解决方法是使用不同的机器或 CI/CD 管道进行构建。

NativePHP 是一款新兴的框架,可帮助 PHP 开发人员构建原生桌面应用程序。它仍处于 alpha 阶段,但具有很大的潜力。如果您热衷于 PHP 开发,NativePHP 值得您关注。

喜欢就支持以下吧
点赞 0

发表评论

快捷回复: 表情:
aoman baiyan bishi bizui cahan ciya dabing daku deyi doge fadai fanu fendou ganga guzhang haixiu hanxiao zuohengheng zhuakuang zhouma zhemo zhayanjian zaijian yun youhengheng yiwen yinxian xu xieyanxiao xiaoku xiaojiujie xia wunai wozuimei weixiao weiqu tuosai tu touxiao tiaopi shui se saorao qiudale qinqin qiaoda piezui penxue nanguo liulei liuhan lenghan leiben kun kuaikule ku koubi kelian keai jingya jingxi jingkong jie huaixiao haqian aini OK qiang quantou shengli woshou gouyin baoquan aixin bangbangtang xiaoyanger xigua hexie pijiu lanqiu juhua hecai haobang caidao baojin chi dan kulou shuai shouqiang yangtuo youling
提交
评论列表 (有 0 条评论, 579人围观)

最近发表

热门文章

最新留言

热门推荐

标签列表