PHP 桌面端框架NativePHP for Desktop v2 发布!

news/2025/10/19 8:15:53/文章来源:https://www.cnblogs.com/catchadmin/p/19150411

PHP 桌面端框架NativePHP for Desktop v2 发布!

NativePHP 团队正式发布了 NativePHP for Desktop v2!这是一个重要的主要版本更新,虽然包含一些向后兼容性的破坏性变更,但带来了显著增强的安全默认设置和许多实用的新特性。

让我们一起来看看这个版本有哪些值得关注的新内容和变更。

原文 PHP 桌面端框架NativePHP for Desktop v2 发布!

v2 的新特性

👋🏼 新仓库,新面貌

v2 已在统一的仓库 nativephp/desktop 下发布。这次更新将之前的两个独立仓库(nativephp/laravel 和 nativephp/electron)合并到了一个项目中。

这样的调整不仅与 nativephp/mobile 保持了一致性,也使得整个项目更易于维护,为未来的功能迭代提供了更好的基础。

值得注意的是,旧仓库仍然可用,官方团队会继续维护 v1 一段时间,但建议开发者尽快升级到 v2 以享受新特性。

🔒 默认增强安全性

v2 在安全性方面做了重要改进,开箱即用地提供了更好的安全默认设置。新版本默认禁用了 nodeIntegration 并启用了 contextIsolation,严格遵循 Electron 的安全最佳实践。这一变更能够有效保护应用程序免受潜在的安全漏洞威胁。

如果你的项目需要使用旧的行为模式,也不用担心!可以通过 Window::webPreferences() 方法轻松地为特定窗口重新启用 nodeIntegration。

🔧 调整 Electron 后端

如果需要对底层 Electron 应用程序进行深度定制,可以使用以下命令将其发布出来:

php artisan native:install --publish

这个命令会将 Electron 项目导出到 {project-root}/nativephp/electron 目录,让开发者能够完全掌控 NativePHP 的所有内部实现细节。

📦 在应用中捆绑额外文件

开发者们期待已久的功能终于实现了!v2 支持在应用程序中捆绑额外的文件,这些文件可以在运行时被访问。这个特性非常适合用来分发额外的资源文件,比如预编译的可执行文件。

这一功能为 NativePHP 应用程序的能力边界开辟了全新的可能性。

✨ 新的 ChildProcess::node() 方法

v2 新增了一个便捷的方法,可以直接使用捆绑的 Node.js 运行时来执行 JavaScript 文件:

ChildProcess::node(cmd: 'resources/js/filesystem-watcher.js',alias: 'filesystem-watcher'
);
  • 无需预先编译 JavaScript 文件
  • 在所有平台上利用相同的 Node.js 版本

在测试方面,ChildProcess fake 也提供了相应的方法,可以使用 ChildProcess::assertNode() 来验证 Node 调用。

🪟 菜单栏窗口的 WebPreferences

v2 将 webPreferences 方法的支持扩展到了菜单栏窗口!在之前的版本中,这个强大的配置选项仅适用于常规窗口。现在开发者对菜单栏应用程序也拥有了同样级别的控制能力。

🐚 新的 Shell fake

新版本为测试提供了 Shell facade 的 fake 功能,允许开发者拦截和断言 shell 交互(如打开文件、显示文件夹或将项目移至回收站)而无需真正执行这些操作。

Shell::assertOpenedExternal('https://some-url.test');

底层升级:Electron v38

v2 将底层框架升级到了最新的 Electron v38,这意味着开发者可以享受到现代 Electron 基础带来的所有性能改进、安全增强和新功能。

重大变更 ⚠️

与任何主要版本一样,有一些需要注意的重大变更:

macOS 支持变更

重要提示: v2 不再支持 macOS Catalina 和 Big Sur。这个变更是由于升级到 Electron v38 所致,目的是与 Apple 官方支持的操作系统版本保持一致。虽然大多数用户不会受到影响,但建议在升级前先检查一下项目的部署目标系统。

安全默认设置

如前文所述,nodeIntegration 在 v2 中默认被禁用了。虽然这提高了应用的安全性,但可能会影响到依赖此功能的现有应用程序。好在开发者可以在需要的地方通过 Window::webPreferences() 方法轻松重新启用它。

升级到 v2

新版本的包现在可以在 nativephp/desktop 仓库中获取。具体的迁移步骤可以参考官方提供的升级指南。

开始构建!

NativePHP for Desktop v2 现已正式可用。无论是升级现有应用还是开启新项目,这些新特性都值得尝试。

NativePHP for Desktop 始终保持免费和开源,项目团队欢迎社区的贡献和赞助,共同推动项目的持续发展。

如果你正在使用 Laravel 开发桌面应用,不妨试试这个强大的工具! 🚀

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/940117.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Burp Suite Professional 2025.10 for Windows x64 - 领先的 Web 渗透测试软件

Burp Suite Professional 2025.10 for Windows x64 - 领先的 Web 渗透测试软件Burp Suite Professional 2025.10 for Windows x64 - 领先的 Web 渗透测试软件 世界排名第一的 Web 渗透测试工具包 请访问原文链接:http…

Burp Suite Professional 2025.10 for macOS x64 ARM64 - 领先的 Web 渗透测试软件

Burp Suite Professional 2025.10 for macOS x64 & ARM64 - 领先的 Web 渗透测试软件Burp Suite Professional 2025.10 for macOS x64 & ARM64 - 领先的 Web 渗透测试软件 世界排名第一的 Web 渗透测试工具包 …

[LeetCode] 3397. Maximum Number of Distinct Elements After Operations

You are given an integer array nums and an integer k. You are allowed to perform the following operation on each element of the array at most once: Add an integer in the range [-k, k] to the element. R…

Metasploit Framework 6.4.95 (macOS, Linux, Windows) - 开源渗透测试框架

Metasploit Framework 6.4.95 (macOS, Linux, Windows) - 开源渗透测试框架Metasploit Framework 6.4.95 (macOS, Linux, Windows) - 开源渗透测试框架 Rapid7 Penetration testing, updated Oct 18, 2025 请访问原文链…

Cisco IOS XRv 9000 Router IOS XR Release 7.11.2 MD - 思科 IOS XR 网络操作系统

Cisco IOS XRv 9000 Router IOS XR Release 7.11.2 MD - 思科 IOS XR 网络操作系统Cisco IOS XRv 9000 Router IOS XR Release 7.11.2 MD Cisco IOS XRv 9000 路由器 | 思科 IOS XR 网络操作系统 请访问原文链接:http…

设备端语音处理技术解析

本文详细介绍了设备端语音处理的技术架构,包括自动语音识别模型压缩、量化感知训练、稀疏化方法、分支编码器网络设计,以及硬件软件协同优化方案,实现低延迟和低带宽的语音交互体验。设备端语音处理技术解析 创新训…

毕设项目基于SpringBoot的河南非遗助推平台\251004(白嫖源码+演示录像)可做计算机毕业设计JAVA、PHP、爬虫、APP、小程序、C#、C++、python、资料可视化、文案

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

语音技术跨学科研究新趋势

本文探讨了语音技术领域的跨学科融合趋势,包括语音合成与识别模型的循环训练、语言理解改善语音韵律,以及BERT等语言模型在语音系统中的应用,展现了不同技术领域间的协同效应。Interspeech 2022:跨学科研究的增长 …

中国晶圆厂排行榜:谁是下一个台积电

微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 3546955410049087半导体是一场长跑——资金、设备、工艺、人才缺一不可。今天我们把…

一首很棒的歌

《冷冷的夏》演唱:王芷蕾作词:姚谦作曲:Bobby Doll 想着他 想他那夜说的话木棉花 怎能灿烂一季夏怪只怪那时不明白话中话 木棉花落尽我才发现我好傻我真的好傻 我好傻 我好傻 迷惑的心四处张望不见炽热的胸膛多情的…

机器学习优化云虚拟机部署技术解析

本文介绍了一种基于决策树机器学习模型的虚拟机部署算法FirePlace,通过历史数据训练模型,在测试中比传统算法提升10%性能,有效解决云环境中虚拟机资源分配和负载均衡问题。使用机器学习优化云环境中的虚拟机部署 在…

251019

251019苹果真是便宜又好吃,但就是觉得没有那些又贵又难吃的水果高贵

每日反思(2025_10_18)

今天刷了几道关于链表的力扣的题

tryhackme-预安全-网络基础知识-什么是网络-04

tryhackme-Pre Security-Pre Security-Network Fundamentals-What is Networking? 房间地址:https://tryhackme.com/room/whatisnetworking 这是网络安全入门的基础模块的计算机科学基础知识:Careers in Cyber(网络…

C++ std::function简单笔记

std::function简单笔记基本形式 #include <iostream> #include <functional>/** * 1. C++11新增的类型别名声明方式 */using pFunc1 = void(); //普通函数 using pFunc2 = void(int, int); //带参…

【C++】基于asio的异步https server

//跨平台异步http server #define _WIN32_WINNT 0x0A00 #include <iostream> #include <vector> #include <string> #include <ctime> //std::tm,std::strftime #include <chrono> #inc…

tryhackme-预安全-网络安全简介-网络职业-03

tryhackme-Pre Security-Introduction to Cyber Security-Careers in Cyber 房间地址:https://tryhackme.com/room/careersincyber 这是网络安全入门的基础模块的计算机科学基础知识:Careers in Cyber(网络职业),…

tryhackme-预安全-网络安全简介-防御性安全简介-02

tryhackme-Pre Security-Introduction to Cyber Security-Defensive Security Intro 房间地址:https://tryhackme.com/room/defensivesecurityintro 这是网络安全入门的基础模块的计算机科学基础知识:Defensive Secu…

明天发点东西

就这样,没了。