PHP 桌面端框架NativePHP for Desktop v2 发布!
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 开发桌面应用,不妨试试这个强大的工具!
PHP 桌面端框架NativePHP for Desktop v2 发布!的更多相关文章
- [资源共享]C#+AE构建GIS桌面端应用系统框架-全代码
转自:http://www.cnblogs.com/gispeng/archive/2008/10/06/1304534.html [资源共享]C#+AE构建GIS桌面端应用系统框架-全代码 ( ...
- Flutter Windows 桌面端支持进入稳定版
Flutter 创建伊始,我们就致力于打造一个能够构建精美的.可高度定制的.并且可以编译为机器码的跨平台应用解决方案,以充分发挥设备底层硬件的全部图形渲染能力.今天,Flutter 对 Windows ...
- 网站桌面端和手机端不同url的设置
你的网站在搜索引擎中表现怎样很大程度上依赖于你的你的网站对于不同设备上的设计. 下面介绍了怎样基于URL构造来优化你的网站对于搜索引擎的支持. 决定你网页的URL构造 Determine the UR ...
- Vue PC端框架
Vue PC端框架 1. Element 中文文档:http://element-cn.eleme.io/#/zh-CN github地址:https://github.com/ElemeFE/ele ...
- 史上最简单操作!!!!!!!Window Server2012 修改远程桌面端口号
Window Server2012 修改远程桌面端口号 Win + R 输入 regedit 打开注册表编辑器 在注册表编辑器中找到 PortNumber 双击 PortNumber,选择10进制 ...
- Next.js+React聊天室|Next仿微信桌面端|next.js聊天实例
一.项目介绍 next-webchat 基于Next.js+React.js+Redux+Antd+RScroll+RLayer等技术构建的PC桌面端仿微信聊天项目.实现了消息/表情发送.图片/视频预 ...
- vue3系列:vue3.0自定义全局弹层V3Layer|vue3.x pc桌面端弹窗组件
基于Vue3.0开发PC桌面端自定义对话框组件V3Layer. 前两天有分享一个vue3.0移动端弹出层组件,今天分享的是最新开发的vue3.0版pc端弹窗组件. V3Layer 一款使用vue3.0 ...
- Electron-Vue3-Vadmin后台系统|vite2+electron桌面端权限管理系统
基于vite2.x+electron12桌面端后台管理系统Vite2ElectronVAdmin. 继上一次分享vite2整合electron搭建后台框架,这次带来的是最新开发的跨桌面中后台权限管理系 ...
- Tauri-Vue3桌面端聊天室|tauri+vite3仿微信|tauri聊天程序EXE
基于tauri+vue3.js+vite3跨桌面端仿微信聊天实例TauriVue3Chat. tauri-chat 运用最新tauri+vue3+vite3+element-plus+v3layer等 ...
- arcpy+PyQt+py2exe快速开发桌面端ArcGIS应用程序
前段时间有一个项目,大体是要做一个GIS数据处理工具. 一般的方法是基于ArcObjects来进行开发,因为我对ArcObjects不太熟悉,所以就思考有没有其他简单快速的方法来做. 在查看ArcGI ...
随机推荐
- Google-HybridSoftwareEngineering: Abseil CPP Library + Tensorflow Cpp codebase.
Latest Advancement: 9781265242435 International edition of Software An Agile Unified Methodology 2nd ...
- MSDN 我告诉你官方原版系统下载方法教程
有很多喜欢MSDN 我告诉你,I Tell You官方原版ISO系统的小伙伴,但是都不太清楚如何才能下载里面的系统,下面msdn123就来分享一下具体的方法教程.方法如下:我们先打开msdn官网:ww ...
- HAMi vGPU 原理分析 Part2:hami-webhook 原理分析
上篇我们分析了 hami-device-plugin-nvidia,知道了 HAMi 的 NVIDIA device plugin 工作原理. 本文为 HAMi 原理分析的第二篇,分析 hami-sc ...
- Coze 开源了!所有人都可以免费使用了
大家好,我是 Immerse,一名独立开发者.内容创作者.AGI 实践者. 关注公众号:#沉浸式趣谈,获取最新文章(更多内容只在公众号更新) 个人网站:https://yaolifeng.com 也同 ...
- 8种品牌PLC单片机实现自由格式协议串口通信主站视频教程
8种品牌PLC单片机实现自由格式协议串口通信主站视频教程 一.罗克韦尔AB Micro850系列PLC实现自由格式协议串口通信主站视频教程:罗克韦尔AB Micro850系列PLC做ASCII串口通 ...
- OAuth2.0系列之信息数据库存储实践(六)
@ 目录 1.OAuth2.0信息存储方式 2.数据表schema脚本 3.SpringBoot环境搭建 4.OAuth2.0配置类实现 4.1 客户端信息 4.2 授权码和token配置 4.3 T ...
- E . Rain Gauge -UCF Local Programming Contest 2015
https://nanti.jisuanke.com/t/43390 题意 几何中心重合的 圆 和 正方形 给定正四边形边长 a 和 圆的半径 r,求重合面积 简单计算几何问题 思路 分块计算 注意精 ...
- iptables服务详解
安装iptables # 1. 关闭selinux,不关闭selinux,iptables不读取配置文件 sed -i 's#SELINUX=enforcing#SELINUX=disabled#' ...
- node-geogebra
https://github.com/trumptech/node-geogebra GitHub - geogebra/integration https://github.com/geogebra ...
- cef 边缘黑色
问题原因 使用CefSharp控件,在部分高分辨率的电脑中(显示缩放比例非100%,而是120%或者125%等)会出现以下一些情况: 显示的页面中出现了黑边,且按钮定位也偏了,比如点击[图层]按钮,需 ...