Premium 版本
面向工程负责人
你正在评估的是一项你的团队将要与之相处多年的商业依赖。 本页回答工程负责人在购买前常向我们提出的问题: 集成投入、升级策略、锁定、交付、质量证据,以及规模化面。每一条主张要么可在产品源码中查证,要么链接到负责该内容的文档页面。NextPDF 不持有任何第三方认证,本页也没有任何一致性或认证方面的主张。
本指南同时涵盖两个商业版本——NextPDF Pro(nextpdf/pro)与
NextPDF Enterprise(nextpdf/enterprise);各版本的可用性请见
功能矩阵。
两者都通过一份 license 信封激活;缺少匹配授权的部署不会加载该版本的 premium 类。
对比版本并获取 license。
版本是累加的。NextPDF Pro 包含开源 core 中的一切,而
NextPDF Enterprise 包含 Pro 中的一切。下文的若干功能面随
Pro 层(nextpdf/pro)发布,因此 Enterprise 同样具备它们。
你买到的是什么
标题为“你买到的是什么”的章节30 秒版本。NextPDF 是面向现代 PHP 的 PDF 2.0 引擎;它所写出的格式正是 ISO 32000-2 所规定的那一种。core 引擎在 Apache License 2.0 下开源。NextPDF Pro 与 NextPDF Enterprise 是构建在其之上的专有商业版本——图表、高级条码、 签名、合规工具、文档操作,以及下文所述的规模化面。完整的 功能矩阵见各版本的划分。
对你的团队而言,这笔采购买到三样东西。第一,那些若要在内部自建与维护会非常昂贵的能力。第二,一套你可以检视的工程标准:PHPStan level 10、架构约束,以及一套极为庞大的测试套件。第三,一个有界的下行风险——而且三种退出状态各不相同。一个经 ionCube 通道的部署在租约过期后离线,会暂停 premium 功能并回退到免费、开源的 Core,直到它重新连接。一个失效的订阅会经过一个宽限期进入永久回退状态:已安装的版本会带着它的 premium 授权继续运行,但不再获得更新。而一次强制执行失败绝不会让部署变砖——最坏的情况就是 Core 行为。 商业机制的内容见 购买与授权。
我们最常听到的问题
标题为“我们最常听到的问题”的章节“我该为集成投入预留多少工作量?”
一个 Composer 包加一份 license。premium 版本按你的版本用
composer require nextpdf/pro 或 composer require nextpdf/enterprise 安装(nextpdf/premium 元包会同时安装两者),从一个私有仓库安装,使用购买后签发的凭据。运行时要求为 PHP >=8.4 <9.0。采用无需改动任何应用代码:Premium 接入的是你的应用已经在对接的同一套公共契约背后,如 授权与激活所述。安装步骤见
安装与认证。
“我们升级时会有什么被破坏?”
破坏性变更是存在的,而我们会把它们记录下来而非隐藏。
Premium 仓库在每次发布的升级说明中追踪每一处影响 BC 的变更并给出迁移路径,其工具链包含
roave/backward-compatibility-check。有些破坏是刻意为之:安全校验路径被收紧为 fail-closed 而非留作宽松,而且那些说明会明确指出这一点。请为在每次发布前阅读升级说明预留时间;
不要为无声的行为漂移预留时间。
“我们会被锁定吗?” 退出是结构性的,而非合同上的善意。core 是 Apache-2.0,因此你的集成对接的是那些无需订阅也能存续的契约。当一份付费订阅结束时,会有一个宽限期,接着是一个永久回退状态:已安装的版本会继续运行,只有更新与支持会停止。 你绝不会被锁在你已经部署的软件之外。细节见 授权与激活与 授权模型。
“我的团队能读到我们所运行的代码吗?” 可以,在合适的通道上。Premium 以两种方式交付:ionCube 编码( 成本更低的默认方式)与 签名明文源码——可读的 PHP, 经加密签名,定价更高。两者携带完全相同的 license 权利, 而可读源码绝不等于复制或再分发的许可; EULA 对两者均适用。完整对比见 两种交付通道。
“我实际能验证到哪些质量信号?” Premium 代码库在所有 Pro 与 Enterprise 源码上以 PHPStan level 10 配合 strict-rules 扩展进行开发,另加 Deptrac 架构层约束。该仓库携带超过 1,500 个测试文件,覆盖单元、 集成、一致性与合规套件,其变异测试脚本以 95% 最低变异分数作为门槛。这些都是你可以在签名源码通道上确认的开发仓库事实——不是第三方审计, 也不是认证。
“有哪些性能与规模化面?”
三个,而且全都是可选层而非重写。加速器是一个通过 Core 契约接口消费的 Rust sidecar。输出流水线(NextPDF\Pro\OutputPipeline\PipelineExecutor)执行多步骤文档清单并做依赖解析。流引擎确定性地渲染并发批次:
public function renderBatch(array $manifests, array $variablesByJobId = []): arrayNextPDF\Pro\Stream\Engine\ConcurrentRenderEngine 会还原输入顺序,因此无论并发度如何,输出字节都与顺序渲染一致。它在遇到缺失、重复或未知的完成时以
NextPDF\Pro\Stream\Exception\RenderEngineException 失败——绝不无声丢弃。我们在此不发布任何基准数字;请在试用期间对你自己的工作负载做基准测试。
“加速器会不会造成对原生代码的硬依赖?” 不会。sidecar 是可选的连通性,provider 会报告可用性而非抛出异常:
public function isAvailable(): boolpublic function embedding(): EmbeddingServiceInterfacepublic function vectorIndex(string $collectionId = 'default'): VectorIndexInterface这些方法未声明任何 @throws;sidecar 的可达性由
isAvailable() 报告。返回的类型是 Core 契约接口
(NextPDF\Contracts\EmbeddingServiceInterface、
NextPDF\Contracts\VectorIndexInterface),这在实践中正是那个无需改代码的接缝。
“离线或气隙环境下会发生什么?” 这取决于通道,而这通常是决定性因素。 ionCube 通道在线校验其 license——大约每 7 天检查一次以续约一份约 14 天的租约。在租约过期后离线,premium 功能会暂停, 引擎会回退到免费的 Core,并在连通性恢复时恢复。 签名源码通道在本地校验其 license 并完全离线运行, 包括气隙环境。参见 两种交付通道。
“license 检查会发送什么?” 在 ionCube 通道上,一次检查只发送一个 license 标识符和一个加盐的指纹哈希——绝不发送你的文档内容。一个完全离线的签名源码部署则完全不发送任何东西。license 决策面是一个你的平台团队可以推理的单一公共求值器:
public function evaluate(?LicenseKey $license, ?DateTimeImmutable $now = null): EntitlementResult它未声明任何 @throws;每一种 license 状态,包括完全没有 license,
都映射为一个 EntitlementResult 而非异常。
“谁来支持我们,我们又如何开始?” 产品与技术帮助来自 PATEON support;账单、发票与退款由我们的 Merchant of Record 处理——见 联系谁。你可以从 你的账户开始一个 14 天免费试用,或申请一份运行完整功能集、仅带一个可移除水印的评估授权。
需求清单
标题为“需求清单”的章节诚实地说明能与不能,并附上负责各项事实的页面。
| 你的需求 | NextPDF 能满足吗? | 证据与负责方 |
|---|---|---|
| 现代 PHP 运行时 | 能——要求 PHP >=8.4 <9.0。更早的 PHP 版本不受支持。 | 产品 composer.json;安装与认证 |
| 标准打包 | 能——私有 Composer 包:按版本用 nextpdf/pro 或 nextpdf/enterprise(nextpdf/premium 会安装两层),凭据在购买后签发。 | 购买与授权 |
| 无需重写即可采用 | 能——无需改动应用代码;Premium 在你已经调用的 Core 契约背后解析。 | 授权与激活 |
| 静态分析标准 | 能——在所有 Pro 与 Enterprise 源码上以 PHPStan level 10 配合 strict rules 开发。 | 产品 phpstan.neon.dist |
| 测试纪律 | 能——1,500+ 测试文件;变异测试在仓库脚本中以 95% 最低 MSI 作门槛。 | 产品 composer.json 脚本与测试树 |
| BC 治理 | 部分——BC 破坏会发生,且对于 fail-closed 安全修复是刻意为之;每一处都附有迁移路径记录。 | 产品 UPGRADING.md |
| 气隙运行 | 在签名源码上能;ionCube 通道受其约 14 天的租约限制。 | 两种交付通道 |
| 可读源码 | 能——仅签名源码通道,价格更高;可读不等于再分发权利。 | 两种交付通道、EULA |
| 正式认证 | 不能。 NextPDF 不持有任何认证也不授予任何认证;支持某项标准不等于一致性或认证。 | 本页;授权模型 |
| 强制原生加速 | 非必需——Rust sidecar 是可选的;以 ProAcceleratorProvider::isAvailable() 作门控。 | 产品源码,如上所示 |
风险与缓解
标题为“风险与缓解”的章节- ionCube 租约失效。 一个编码通道的部署在租约过期后离线会暂停 premium 功能并回退到 Core,在重新连接时恢复。若你的网络态势无法保证周期性连通,请改选 签名源码通道。
- 刻意的 BC 破坏。 与安全相关的校验会在发布之间被收紧为 fail-closed。请锁定版本、在每次升级前阅读升级说明, 并在 CI 中运行一次 BC 检查。不要把升级当作直接替换。
- 无认证。 我们陈述能力,绝不陈述认证。若你的项目要求经认证的一致性,请在依赖它之前用你自己的验收工具校验输出——没有任何 NextPDF 文档页面能替代那一步。
- 性能取决于工作负载。 ionCube Loader 会增加解码开销,通常很小;我们不发布任何通用基准。请在试用期间对你自己的文档做基准测试,再决定选用哪个通道。
- 评估输出带水印。 评估构建会运行每一项能力但会在其输出上打上可见品牌标记;它们不适合用于生产交付。一份付费 license 会在不改代码的情况下移除水印。
接下来该申请什么
标题为“接下来该申请什么”的章节- 开始试用。 一个 14 天免费试用可从 你的账户获取——每个邮箱一份、今天不收费,且不会自动续订。请为编码构建上对免费 ionCube Loader 的需求做好规划,包括在 CI 中。
- 运行一个限定范围的试点。 通过 Composer 安装,把一个真实文档流程集成到你现有的契约背后,运行你的测试套件,并对你的工作负载做基准测试。评估会在可移除的水印背后运行完整功能集,因此评估中没有任何东西被隐藏。
- 选择一个交付通道。 依据你的连通性与审计需求,在 ionCube 编码与签名源码之间做决定——见 两种交付通道。
- 申请你的 license 信封。 采购通过我们的 Merchant of Record 进行;你的 license 由 PATEON 依据 EULA 授予。从 license 门户开始。