找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

4205

积分

0

好友

579

主题
发表于 3 小时前 | 查看: 2| 回复: 0

这次发布的 v3.1 版本,带来的远不止常规的功能迭代。根据官方数据,这堪称 NativePHP 框架有史以来最大规模的性能飞跃。

⚡ 迄今为止最大的性能飞跃

响应时间提升超过 10 倍,并且新增了对后台作业处理的支持。在平台兼容性上,现已支持 Android 8 及以上版本,并在 iOS 上实现了完整的 ICU 支持。此外,版本还能够自动匹配 PHP 8.3–8.5,引入了二进制文件缓存等一系列改进。

持久运行时:告别重复启动

在过去的版本中,NativePHP 应用的每个请求都需要经历完整的 Laravel 启动周期:注册服务提供者、构建服务容器、处理请求,最后销毁一切。每一次请求都是如此,导致响应时间通常在 200–300 毫秒左右徘徊。

现在,这种情况在 v3.1 中得到了彻底改变。新版本只会启动一次 Laravel 内核,后续的所有请求都复用同一个已初始化的内核。这使得响应时间直接骤降至 5–30 毫秒。这不是笔误,确实是高达 10 倍 的性能提升。

你的应用会因此变得极快,点击操作立刻得到响应,页面加载几乎在眨眼之间完成,终于能获得真正原生应用般的流畅体验。

实现这一特性的配置非常简单,只需在 config/nativephp.php 文件中进行设置:

// config/nativephp.php
'runtime' => [
    'mode' => 'persistent', // 或 'classic'
    'reset_instances' => true,
    'gc_between_dispatches' => false,
],

mode 设置为 persistent(这也是默认值)即可启用内核复用;若设为 classic 则会保持每次请求都重启的旧有模式。系统具备容错能力,如果持久化模式启动失败,会自动回退到经典模式。诸如 Livewire 组件状态、路由状态、门面(Facade)实例等,框架都会自动妥善处理。

后台队列工作者:解放主线程

这是自框架诞生以来最受期待的功能之一。v3.1 版本内置了线程安全(ZTS)的 PHP 以及一个专用的后台队列工作者。这个工作者运行在独立的线程中,与处理 UI 交互的主请求周期完全隔离。

配置过程出乎意料地简单,通常只需要一行环境变量:

QUEUE_CONNECTION=database

之后,你就可以像在标准的 Laravel 应用中一样分发任务:

use App\Jobs\SyncData;

SyncData::dispatch($payload);

后台工作者会在应用启动时自动运行。这意味着那些耗时的操作,例如长时间运行的 API 调用、大文件处理、数据同步等,再也不会阻塞用户界面了。

所有任务都会被持久化到数据库中,即使应用重启,任务也能继续执行。Laravel 原生提供的任务重试、失败处理等机制全部可以直接使用。该功能在 iOS 和 Android 平台上均得到完整支持

Android 8+ 支持:覆盖更广的设备

此前,NativePHP 要求的最低系统版本是 Android 13(API 33),这无形中将安卓生态中一大部分存量设备排除在外。

v3.1 版本将最低系统要求大幅降低至 Android 8(API 26)

为了实现这一目标并在 Android 端提升性能与可靠性,新版本采用了静态链接技术。现在,相关的 SDK 版本也变得完全可配置:

// config/nativephp.php
'android' => [
    'compile_sdk' => env('NATIVEPHP_ANDROID_COMPILE_SDK', 36),
    'min_sdk' => env('NATIVEPHP_ANDROID_MIN_SDK', 33),
    'target_sdk' => env('NATIVEPHP_ANDROID_TARGET_SDK', 36),
],

这一改动意味着你的应用能够触达更多的设备、用户和更广阔的市场。

iOS 上的完整 ICU/Intl 支持

现在,为 iOS 构建的应用将自带完整的 ICU(International Components for Unicode)库支持,使得 PHP 的 intl 扩展在 iOS 和 Android 两个平台上都能正常工作。

在此之前,intl 扩展仅在 Android 上可用。这对于许多依赖它的流行包(例如 Filament)来说是一个致命缺陷,因为 Filament 需要它来处理数字格式化、日期本地化、复数规则等国际化功能。

从 v3.1 开始,Filament 可以直接在 iOS 和 Android 上开箱即用

想象一下:一个功能完整的 Filament 管理后台,可以同时作为原生移动应用发布到 iOS 和 Android 应用商店。无需任何 Hack 手段,也没有功能妥协。

在安装时,你可以通过 --with-icu / --without-icu 参数来选择是否包含 ICU 支持。如果追求极致的安装包体积,可以选择关闭。但团队已经做了大量优化,确保默认包含 ICU(目前主要支持 en 区域设置)的体验非常轻量:ICU 现在只会给应用整体体积增加大约 10–15MB,两个平台都是如此。

PHP 版本自动匹配与二进制缓存

NativePHP 现在会自动读取你的项目 composer.json 文件,在下载 PHP 二进制文件时匹配其中指定的 PHP 版本范围,开发者无需再手动固定或指定版本。

  • 最低支持 PHP 8.3。
  • 最高支持到 PHP 8.5。
  • 采用动态版本清单机制,取代了过去的硬编码下载 URL。
  • 下载的 PHP 二进制文件会缓存在本地的 nativephp/binaries 目录中,后续构建时直接使用,避免重复下载,提升了构建速度。

开发者体验优化

新版本还包含了一系列提升开发效率的细节改进:

  • 插件批量注册native:plugin:register 命令现在可以一次扫描并注册多个插件。
  • 未注册插件警告:运行 native:run 时,如果检测到有插件尚未注册,命令行会给出明确提示。
  • 平台名称简写:在任何需要指定平台参数的地方,现在可以使用简写 ios/iandroid/a
  • 自动编译插件:执行 native:package 进行应用打包时,会自动编译所有已注册的插件。
  • Android URL 编码保留:在 Android 端进行重定向操作时,现在会正确保留 URL 中的编码信息。
  • 移除无用依赖:清理了 react/httpreact/socket 这两个不再需要的依赖项。
  • 支持 Laravel 13:现已兼容 Laravel 13 框架。

平滑升级指南

v3.1 是一个零破坏性变更的平滑升级版本。升级步骤如下:

首先,在 composer.json 文件中更新依赖版本:

"require": {
    "nativephp/mobile": "~3.1.0"
}

然后,在终端执行更新命令:

composer update
php artisan native:install --force

使用 --force 参数会强制更新原生项目文件、PHP 二进制文件和相关配置到 v3.1 的最新版本。

总而言之,这不仅仅是一个小版本号的变化。它是一个让基于 NativePHP 构建的应用真正获得原生应用体验的里程碑版本:速度快了 10 倍、支持后台任务、拥有更广泛的设备兼容性以及更完善的生态支持。对于正在使用或考虑使用 PHP 进行跨平台移动开发的团队来说,这次更新值得深入评估。如果你想了解更多类似的跨平台开发实践,欢迎到 云栈社区 的移动开发板块交流探讨。




上一篇:Cursor官方确认Composer 2以Kimi K2.5为底座,后续训练投入超基础模型三倍算力
下一篇:国产手机品牌集体涨价背后:AI浪潮冲击存储芯片供应链,智能手机告别“白菜价”时代
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-3-22 06:39 , Processed in 0.504938 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表