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

2023-12-1212:09:48后端程序开发Comments1,259 views字数 2010阅读模式

NativePHP 将您的 PHP 应用程序打包成一个可独立运行的 Web 应用程序,类似于 SlackDiscord 和 Trello 等流行应用程序。后端逻辑仍由 PHP 提供,而 UI 则可以使用 HTMLCSS 和任何 JavaScript 框架构建。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/58033.html

为了深入研究 NativePHP,我决定将一个 Laravel 应用程序转换为桌面应用程序。为了让您更好地理解,让我们从基本设置开始。以下是应用程序的基本设置:后端由 Laravel 提供,前端由 React 提供,数据库由 MySQL 提供。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/58033.html

安装NativePHP

首先,我们使用 Composer 安装 NativePHP文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/58033.html

composer require nativephp/electron

这会将 NativePHP 添加到您的 Laravel 应用程序中,并通过一组新的 NativePHP 特定命令扩展 Laravel 的 artisan 工具。例如,您可以使用 php artisan native 命令来查看用于构建和管理本机应用程序的命令列表。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/58033.html

接下来,运行 php artisan native:install 命令会建立基本结构。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/58033.html

其中两个文件特别值得注意:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/58033.html

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

开发构建

设置应用程序后,我们就可以开始开发构建了。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/58033.html

php artisan native:serve &
npm run dev &

这将启动 PHP 和 UI 的开发服务器。在本例中,npm 使用 Vite 构建 UI 组件并将其提供给 Electron 窗口。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/58033.html

NativePHP 将应用程序与 Electron 捆绑在一起,并嵌入了 PHP 解释器。在开发过程中,它将后端切换到本地 SQLite 数据库。因此,我们需要运行迁移命令 php artisan native:migrate 来设置新数据库。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/58033.html

添加本机功能

为了增强桌面体验,NativePHP 支持集成本机元素,例如通知、菜单栏和热键。您可以在文档页面中查看完整的元素列表。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/58033.html

我通过编辑 app/Providers/NativeAppServiceProvider.php,在应用程序启动时添加了一个简单的通知。这有助于我们为应用程序提供原生感觉。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/58033.html

首先,我们添加通知外观:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/58033.html

use Native\Laravel\Facades\Notification;

然后,在 boot() 函数中,我添加以下行,在窗口打开后显示通知:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/58033.html

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

保存后,热重载功能应该重新启动应用程序并显示通知。如果您没有看到通知,请检查您是否已启用来自 Electron 的通知。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/58033.html

构建发布

对于生产环境的构建,您需要在 config/nativephp.php 文件中填写发布详细信息。请注意,环境文件 (.env) 将被捆绑在构建中,因此您需要使用 cleanup_env_keys 方法来清理敏感数据。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/58033.html

要为您的操作系统构建版本,请运行以下命令:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/58033.html

php artisan native:build

此过程将生成各种捆绑包,包括 DMGZip 文件和应用程序的二进制文件。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/58033.html

我们还可以使用以下命令来构建 Windows 和 Linux 捆绑包:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/58033.html

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

构建过程完成后,您将获得以下文件:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/58033.html

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

NativePHP 的注意事项

在深入研究 NativePHP 之前,请注意以下事项:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/58033.html

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

NativePHP 是一款新兴的框架,可帮助 PHP 开发人员构建原生桌面应用程序。它仍处于 alpha 阶段,但具有很大的潜力。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/58033.html

  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/bc/58033.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定