Laravel NativePHP:构建跨平台桌面应用的PHP开发框架
Laravel NativePHP是一款将Laravel框架与桌面应用开发能力相结合的创新解决方案,让PHP开发者能够使用熟悉的Laravel生态系统构建原生桌面应用。该框架通过提供统一的API接口、简化的开发流程和完善的工具链,彻底改变了PHP开发者开发桌面应用的方式,实现了"一次编码,多平台运行"的开发体验。
3大核心优势:重新定义PHP桌面开发
1. 无缝融合Laravel生态
基于Laravel强大的MVC(模型-视图-控制器)架构,保留开发者熟悉的路由、中间件、Eloquent ORM等核心功能,同时扩展了桌面应用特有的窗口管理、系统通知、菜单构建等能力。通过NativeServiceProvider实现Laravel服务容器与桌面API的深度整合,让开发流程与传统Laravel Web项目保持一致。
2. 跨平台原生体验
借助底层框架实现Windows、macOS和Linux三大平台的原生应用打包,无需学习平台特定技术。通过WindowManager类管理窗口生命周期,MenuBuilder构建原生菜单,System类访问系统级功能,确保应用在各平台都能提供符合用户习惯的交互体验。
3. 全栈开发效率提升
将Web开发的快速迭代优势带入桌面应用开发,支持热重载、即时调试和前端资源编译。提供DebugCommand等开发工具,结合Laravel的 artisan 命令行工具,实现从数据库迁移到应用打包的全流程自动化。
📋 开发环境检查清单
在开始前,请确保您的开发环境满足以下要求:
- PHP环境:PHP 8.1+(推荐8.2版本),启用PDO扩展、OpenSSL扩展
- 依赖管理:Composer 2.0+
- Node.js:v16.0+(用于前端资源编译)
- 系统工具:Git、make、gcc(或其他C++编译器,用于原生模块编译)
- 可选工具:Docker(用于数据库环境管理)
⚠️ 注意:Windows用户需要安装Visual Studio Build Tools或MinGW以支持原生模块编译;macOS用户需安装Xcode命令行工具。
3步极速启动:从安装到运行
🔧 第1步:获取项目代码
git clone https://gitcode.com/gh_mirrors/lar/laravel
cd laravel
执行完成后,您将获得完整的项目代码库,包含所有NativePHP扩展组件和示例配置。
🔧 第2步:安装依赖并配置
composer install
cp .env.example .env
编辑.env文件配置关键参数:
# 应用基本信息
APP_NAME="My Native App"
APP_ENV=local
APP_KEY=base64:your_generated_key
# 数据库配置(用于本地数据存储)
DB_CONNECTION=sqlite
DB_DATABASE=database/nativephp.db # NativePHP专用数据库路径
# NativePHP配置
NATIVEPHP_APP_NAME="My App"
NATIVEPHP_APP_DESCRIPTION="Built with Laravel NativePHP"
🔧 第3步:启动开发环境
php artisan native:serve
成功启动后,将自动打开应用窗口,并显示"ApplicationBooted"事件触发信息。您可以通过http://localhost:8000访问开发服务器,同时桌面应用界面会实时响应代码更改。
💡 技巧:使用php artisan native:debug命令可启用详细日志输出,帮助诊断开发过程中的问题。
5个实战场景:NativePHP功能应用
1. 创建多窗口应用
通过WindowManager类轻松管理多个应用窗口:
use Native\Laravel\Windows\WindowManager;
// 创建主窗口
WindowManager::open()
->url('/dashboard')
->width(1200)
->height(800)
->title('主控制台');
// 创建设置窗口
WindowManager::open()
->url('/settings')
->width(800)
->height(600)
->title('应用设置')
->resizable(false);
2. 实现系统通知功能
使用Notification类向用户发送系统通知:
use Native\Laravel\Facades\Notification;
Notification::title('任务完成')
->body('数据库迁移已成功执行')
->icon(public_path('icons/notification.png'))
->show();
3. 构建应用菜单系统
通过MenuBuilder创建原生应用菜单:
use Native\Laravel\Menu\Menu;
use Native\Laravel\Menu\MenuItem;
Menu::new()
->appMenu()
->submenu('文件', Menu::new()
->item(MenuItem::new('新建')
->action('App\\Actions\\NewFile@handle')
->accelerator('CmdOrCtrl+N')
)
->separator()
->item(MenuItem::new('退出')
->action('App\\Actions\\Quit@handle')
->accelerator('CmdOrCtrl+Q')
)
)
->register();
4. 处理应用生命周期事件
监听并响应应用关键事件:
use Native\Laravel\Events\App\ApplicationBooted;
Event::listen(ApplicationBooted::class, function () {
// 应用启动完成后执行初始化操作
\Native\Laravel\Facades\Dock::badge(5); // 设置Dock图标徽章
\Native\Laravel\Facades\PowerMonitor::onBattery(function () {
// 当电脑使用电池供电时触发
Notification::title('省电模式')->body('应用已调整为低功耗模式')->show();
});
});
5. 数据库操作与迁移
使用Laravel原生迁移系统管理桌面应用数据:
# 创建迁移文件
php artisan make:migration create_notes_table
# 运行迁移(针对NativePHP环境)
php artisan native:migrate
# 填充测试数据
php artisan native:db:seed
生态拓展:NativePHP与Laravel生态整合
核心扩展包推荐
- 数据库管理:利用Laravel Eloquent ORM操作SQLite数据库,通过
native:migrate命令管理 schema - 认证系统:集成Laravel Sanctum实现应用内用户认证,数据存储在本地数据库
- 状态管理:结合Laravel Livewire实现实时UI更新,无需刷新窗口
- 更新机制:通过
AutoUpdater类实现应用自动更新,支持版本检查和增量更新
打包与分发
完成开发后,使用以下命令构建跨平台安装包:
# 构建macOS应用
php artisan native:build mac
# 构建Windows应用
php artisan native:build win
# 构建Linux应用
php artisan native:build linux
构建产物将生成在dist/目录下,包含各平台专用的安装程序。
💡 技巧:通过native:build --debug命令可生成包含调试信息的安装包,便于测试环境问题排查。
通过Laravel NativePHP,PHP开发者终于可以摆脱传统Web开发的局限,轻松构建功能丰富的桌面应用。无论是企业内部工具、客户端应用还是离线解决方案,NativePHP都能提供高效、可靠的开发体验,让PHP在桌面开发领域焕发新的活力。立即尝试,开启您的PHP桌面应用开发之旅!
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0197
cann-learning-hubCANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。Jupyter Notebook0126
MiMo-V2.5-Pro-FP4-DFlashMiMo-V2.5-Pro-FP4-DFlash 是驱动 MiMo-V2.5-Pro-UltraSpeed 的底层模型: FP4 量化骨干网络:对 MoE 专家采用 MXFP4 量化,同时保持模型其他部分的更高精度,在几乎无损质量的前提下,显著减小模型体积并降低内存带宽压力。 BF16 DFlash 草稿生成器:用于块扩散推测解码,每次前向传播可生成一整个块的 tokens,并让骨干网络一步完成验证。 两者协同作用,既降低了每参数的位宽,又减少了骨干网络前向传播的次数,而这两者正是万亿参数模型解码过程中的两大主要成本来源。Python00
JoyAI-EchoJoyAI-Echo,这是一个独立的、仅用于推理的版本,旨在实现分钟级多镜头音视频生成。它采用了经过蒸馏的DMD生成器、配对的跨模态记忆以及故事级别的一致性。其性能的核心在于,一个跨模态视听记忆库能够在长达五分钟的视频中保持角色外观和语音音色的一致性。同时,一个训练后处理流程将基于记忆的强化学习与分布匹配蒸馏相结合,实现了7.5倍的速度提升,显著增强了视觉质量和对齐效果。00
AstrBot✨ 易上手的多平台 LLM 聊天机器人及开发框架 ✨ 平台支持 QQ、QQ频道、Telegram、微信、企微、飞书 | OpenAI、DeepSeek、Gemini、硅基流动、月之暗面、Ollama、OneAPI、Dify 等。附带 WebUI。Python06
handy-ollama动手学Ollama,CPU玩转大模型部署,在线阅读地址:https://datawhalechina.github.io/handy-ollama/Jupyter Notebook07