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 发布!的更多相关文章

  1. [资源共享]C#+AE构建GIS桌面端应用系统框架-全代码

    转自:http://www.cnblogs.com/gispeng/archive/2008/10/06/1304534.html    [资源共享]C#+AE构建GIS桌面端应用系统框架-全代码 ( ...

  2. Flutter Windows 桌面端支持进入稳定版

    Flutter 创建伊始,我们就致力于打造一个能够构建精美的.可高度定制的.并且可以编译为机器码的跨平台应用解决方案,以充分发挥设备底层硬件的全部图形渲染能力.今天,Flutter 对 Windows ...

  3. 网站桌面端和手机端不同url的设置

    你的网站在搜索引擎中表现怎样很大程度上依赖于你的你的网站对于不同设备上的设计. 下面介绍了怎样基于URL构造来优化你的网站对于搜索引擎的支持. 决定你网页的URL构造 Determine the UR ...

  4. Vue PC端框架

    Vue PC端框架 1. Element 中文文档:http://element-cn.eleme.io/#/zh-CN github地址:https://github.com/ElemeFE/ele ...

  5. 史上最简单操作!!!!!!!Window Server2012 修改远程桌面端口号

    Window Server2012 修改远程桌面端口号   Win + R 输入 regedit 打开注册表编辑器 在注册表编辑器中找到 PortNumber 双击 PortNumber,选择10进制 ...

  6. Next.js+React聊天室|Next仿微信桌面端|next.js聊天实例

    一.项目介绍 next-webchat 基于Next.js+React.js+Redux+Antd+RScroll+RLayer等技术构建的PC桌面端仿微信聊天项目.实现了消息/表情发送.图片/视频预 ...

  7. vue3系列:vue3.0自定义全局弹层V3Layer|vue3.x pc桌面端弹窗组件

    基于Vue3.0开发PC桌面端自定义对话框组件V3Layer. 前两天有分享一个vue3.0移动端弹出层组件,今天分享的是最新开发的vue3.0版pc端弹窗组件. V3Layer 一款使用vue3.0 ...

  8. Electron-Vue3-Vadmin后台系统|vite2+electron桌面端权限管理系统

    基于vite2.x+electron12桌面端后台管理系统Vite2ElectronVAdmin. 继上一次分享vite2整合electron搭建后台框架,这次带来的是最新开发的跨桌面中后台权限管理系 ...

  9. Tauri-Vue3桌面端聊天室|tauri+vite3仿微信|tauri聊天程序EXE

    基于tauri+vue3.js+vite3跨桌面端仿微信聊天实例TauriVue3Chat. tauri-chat 运用最新tauri+vue3+vite3+element-plus+v3layer等 ...

  10. arcpy+PyQt+py2exe快速开发桌面端ArcGIS应用程序

    前段时间有一个项目,大体是要做一个GIS数据处理工具. 一般的方法是基于ArcObjects来进行开发,因为我对ArcObjects不太熟悉,所以就思考有没有其他简单快速的方法来做. 在查看ArcGI ...

随机推荐

  1. ICEE-MCU-Bluetooth+Zigbee-PIC32CX-BZ2 and WBZ451 Curiosity Development Board

    Zigbee+Bluetooth: PIC32CX-BZ2 and WBZ451 Curiosity Development Board: https://www.microchip.com/en-u ...

  2. SciTech-BigDataAIML-Tensorflow-Introduction to modules, layers, and models

    Introduction to modules, layers, and models Model: To do machine learning in TensorFlow, you are lik ...

  3. SciTech-Mathmatics-Probability+Statistics: The Scientific Method + Engineering Process

  4. pandas速成笔记(4)-数据图表

    接上篇继续,做数据分析,各种数据图表是必不可少的,还是以下面这张表为例: 一.单列柱状图 假设要把9月份,A.B这2个分类的Amount提取出来画一个柱状图,可以这么做: import pandas ...

  5. LINUX中防护墙放行端口--九五小庞

    1.查看开放的端口firewall-cmd --list-ports 2.防护墙放行3306端口firewall-cmd --zone=public --add-port=3306/tcp --per ...

  6. 进阶篇:3.4.2)DFM车削件设计指南

    本章目的:设计符合车削加工工艺的零件 1.车削件设计准则 1.1 车削怕细长,应避免细长件(长径比≤8) 细长型的零件在车削时需要使用尾架支撑.如果没有支撑,零件可能会变弯,在夹具中偏离正确位置.另外 ...

  7. 【机器人】—— 3. ROS 架构 & 文件系统

    1. ROS 架构 到目前为止,我们已经安装了 ROS,运行了 ROS 中内置的小乌龟案例,并且也编写了 ROS 小程序,对 ROS 也有了一个大概的认知,当然这个认知可能还是比较模糊并不清晰的,接下 ...

  8. 3.6 模拟赛T3 题解

    题意: 你有一个长度为 \(2\times n+1\) 的随机排列.现在每次操作从排列中间选一个数出来放入一个集合 \(S\) 中(从排列中将其删掉),并且如果不是最后一次操作(即不是序列只剩一个数) ...

  9. 【MySQL】事务的隔离级别是如何实现的

    水稻: 菜瓜,听说最近你在复习MySQL方面的知识,想请教一下MySQL的事务? 菜瓜:嗯,最近刚刚看到.事务指的是MySQL中不可拆分的业务单元,具有ACID的属性. 水稻: ACID我知道啊,但是 ...

  10. PHP 反转字符串

    一.使用 PHP 函数 strrev <?php $str = "ABCDEFG"; echo strrev($str); 二.使用 strlen() 函数 <?php ...