Premium 版本
給工程主管
你正在評估的,是一個團隊將共處多年的商業相依套件。 本頁回答工程主管在購買前最常問我們的問題: 整合工作量、升級政策、鎖定、交付、品質證據,以及規模面向。每一項主張,若非可在產品原始碼中驗證,就是連結到擁有該事實的文件頁面。NextPDF 未持有任何第三方認證,此處也沒有任何一致性或認證方面的主張。
本指南涵蓋兩個商業版本——NextPDF Pro(nextpdf/pro)與
NextPDF Enterprise(nextpdf/enterprise);各版本的可用性請見
功能矩陣。
兩者都以授權封套(license envelope)啟用;缺少對應權利(entitlement)的部署不會載入該版本的付費類別。
比較各版本並取得授權。
各版本是累加的。NextPDF Pro 包含開源核心的一切,而
NextPDF Enterprise 包含 Pro 的一切。下文數項面向出貨於
Pro 層(nextpdf/pro),因此 Enterprise 也具備它們。
你買到的是什麼
標題為「你買到的是什麼」的區段30 秒版本。NextPDF 是一套給現代 PHP 的 PDF 2.0 引擎;它所寫出的格式,正是 ISO 32000-2 所規範的格式。核心引擎在 Apache License 2.0 之下開源。NextPDF Pro 與 NextPDF Enterprise 是架在其上的專有商業版本——圖表、進階條碼、 簽章、合規工具、文件操作,以及下文所述的規模面向。各版本的分工請見完整的 功能矩陣。
對你的團隊而言,這筆採購買到三樣東西。第一,自建與維護成本高昂的能力。第二,一道你可以親自檢視的工程門檻: PHPStan level 10、架構約束,以及一個非常龐大的測試套件。第三,一個有界的下行風險——而三種退場狀態各不相同。一個走 ionCube 通路的部署在租約過期後離線,會暫停付費功能並退回免費、開源的 Core,直到重新連線為止。一個過期的訂閱會經過寬限期進入永久回退狀態:已安裝的版本會帶著它的付費權利繼續運作,只是不再有後續更新。而執行檢查失敗絕不會使部署變磚——最壞情況就是 Core 行為。 商業運作機制詳見 購買與授權。
我們最常聽到的問題
標題為「我們最常聽到的問題」的區段「我該編列多少整合工作量?」
一個 Composer 套件加一份授權。付費版本以
composer require nextpdf/pro 或 composer require nextpdf/enterprise 依你的版本安裝(nextpdf/premium 中繼套件會一併安裝兩者),從私有儲存庫取得,使用購買後簽發的憑證。執行環境需求為 PHP >=8.4 <9.0。採用不需要任何應用程式碼變更:Premium 就接在你的應用程式早已對接的相同公開合約背後,如 授權與啟用 所述。設定步驟涵蓋於
安裝與驗證。
「我們升級時會壞掉什麼?」
破壞性變更確實存在,我們選擇記錄它們,而非隱藏它們。
Premium 儲存庫在每次發行的升級說明中追蹤每一項影響 BC 的變更並附上遷移路徑,其工具鏈也包含 roave/backward-compatibility-check。有些破壞是刻意的:
安全性驗證路徑會收緊成 fail-closed,而非任其寬鬆,
說明也會明確如此陳述。請為每次發行前閱讀升級說明編列時間;不必為悄然的行為漂移編列預算。
「我們被鎖定了嗎?」 退場是結構性的,而非契約上的善意。核心是 Apache-2.0,所以你的整合對接的是即使沒有訂閱也依然存在的合約。當一份付費訂閱結束時,會有一段寬限期,接著是一個永久回退狀態:已安裝的版本繼續運作,只有更新與支援停止。 你絕不會被鎖在你已經部署的軟體之外。詳情見 授權與啟用 以及 授權模型。
「我的團隊能讀我們執行的程式碼嗎?」 可以,在對的通路上。Premium 以兩種方式出貨:ionCube 編碼( 成本較低的預設)與 簽章明文原始碼——可讀的 PHP、 經加密簽章、定價較高。兩者攜帶相同的授權權利, 而可讀原始碼絕不是複製或再散布的許可; 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 通路在線上驗證其授權——大約每 7 天檢查一次、續展一份約 14 天的租約。離線超過租約後,付費功能暫停, 引擎回退到免費的 Core,並在連線恢復時恢復運作。 簽章原始碼通路在本機驗證其授權,並可完全離線運作, 包含氣隙環境。見 兩種交付通路。
「授權檢查會送出什麼?」 在 ionCube 通路上,一次檢查只送出一個授權識別碼與一個加鹽的指紋雜湊——絕不送出你的文件內容。一個完全離線的簽章原始碼部署完全不送出任何東西。授權決策面是一個你的平台團隊可以推理的單一公開評估器:
public function evaluate(?LicenseKey $license, ?DateTimeImmutable $now = null): EntitlementResult它未宣告任何 @throws;每一種授權狀態,包含完全沒有授權,
都會對映到一個 EntitlementResult,而非例外。
「誰支援我們,我們又要如何開始?」 產品與技術協助來自 PATEON 支援;帳單、發票與退款由我們的 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 租約過期。 一個走編碼通路的部署在租約過期後離線,會暫停付費功能並回退到 Core,重新連線時恢復。若你的網路態勢無法保證週期性連線,請改選 簽章原始碼通路。
- 刻意的 BC 破壞。 安全性相關的驗證會在發行之間收緊成 fail-closed。請釘住版本、在每次升版前閱讀升級說明, 並在 CI 中執行 BC 檢查。不要把升級當成直接替換即用。
- 無認證。 我們陳述能力,絕不陳述認證。若你的計畫要求經認證的一致性,請在依賴其產出之前先以你自己的驗收工具驗證輸出——沒有任何一頁 NextPDF 文件能取代那件事。
- 效能取決於工作負載。 ionCube Loader 會增加解碼額外負擔,通常很小;我們不發布任何通用基準。請在承諾某條通路前, 在試用期間對你自己的文件做基準測試。
- 評估輸出帶浮水印。 評估建置會運行每一項能力, 但會在輸出上明顯打上品牌標記;它們不適合用於正式環境交付。付費授權會在無需改碼的情況下移除浮水印。
接下來該申請什麼
標題為「接下來該申請什麼」的區段- 開始試用。 從 你的帳戶 可取得 14 天免費試用——每個電子郵件一次、今天不收費,且不會自動續訂。請為編碼建置對免費 ionCube Loader 的需求做好規劃,包含在 CI 中。
- 執行範圍界定的試點。 透過 Composer 安裝、在你既有合約背後整合一條真實的文件流程、執行你的測試套件,並對你的工作負載做基準測試。評估會在可移除的浮水印背後運行完整功能集,因此評估過程中沒有任何東西被隱藏。
- 選擇一條交付通路。 依你的連線與稽核需求,在 ionCube 編碼與簽章原始碼之間做決定——見 兩種交付通路。
- 申請你的授權封套。 購買透過我們的 Merchant of Record 進行;你的授權由 PATEON 依 EULA 授予。從 授權入口 開始。