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 StartedRust0151- DDeepSeek-V4-ProDeepSeek-V4-Pro(总参数 1.6 万亿,激活 49B)面向复杂推理和高级编程任务,在代码竞赛、数学推理、Agent 工作流等场景表现优异,性能接近国际前沿闭源模型。Python00
LongCat-Video-Avatar-1.5最新开源LongCat-Video-Avatar 1.5 版本,这是一款经过升级的开源框架,专注于音频驱动人物视频生成的极致实证优化与生产级就绪能力。该版本在 LongCat-Video 基础模型之上构建,可生成高度稳定的商用级虚拟人视频,支持音频-文本转视频(AT2V)、音频-文本-图像转视频(ATI2V)以及视频续播等原生任务,并能无缝兼容单流与多流音频输入。00
auto-devAutoDev 是一个 AI 驱动的辅助编程插件。AutoDev 支持一键生成测试、代码、提交信息等,还能够与您的需求管理系统(例如Jira、Trello、Github Issue 等)直接对接。 在IDE 中,您只需简单点击,AutoDev 会根据您的需求自动为您生成代码。Kotlin03
Intern-S2-PreviewIntern-S2-Preview,这是一款高效的350亿参数科学多模态基础模型。除了常规的参数与数据规模扩展外,Intern-S2-Preview探索了任务扩展:通过提升科学任务的难度、多样性与覆盖范围,进一步释放模型能力。Python00
skillhubopenJiuwen 生态的 Skill 托管与分发开源方案,支持自建与可选 ClawHub 兼容。Python0111