İçeriğe geç
getnextpdf.com

Enterprise sürüm

Sürüm

NextPDF Enterprise, bir release’i türü belirtilmiş değer nesneleri olarak modeller — bir release bildirimi, yapıt başına bildirimler, derleme profilleri, dağıtım kanalları ve erişim sınırları — ve her yapıtı doğru kanala ve erişim sınırına yönlendiren türetilmiş bir yayımlama planı çıkarır.

Bu yetenek NextPDF Enterprise (nextpdf/enterprise) içinde sevk edilir ve bir Enterprise katmanı lisans zarfıyla etkinleşir. Bu yetkilendirmeye sahip olmayan bir dağıtım, yeteneğin sınıflarını yüklemez. Sürümleri karşılaştırın ve bir lisans alın.

Terminal window
composer require nextpdf/enterprise:^3

ReleaseManifest, bir sürüm için değişmez en üst düzey belgedir. Anlamsal sürümü, kaynak commit’i, derleme zaman damgasını, yapıt başına bildirimlerin listesini ve isteğe bağlı tedarik zinciri kanıt yollarını (SBOM, GPG imzası, sağlama toplamları) kaydeder. Şema sürümü, eklemeli için minör, bozucu için majör kuralını izler.

ArtifactManifest, derlenmiş bir yapıtı kaydeder: kanonik dosya adı, sürüm, kaynak commit, hedef sürüm, teslim modu, kodlama teknolojisi, dağıtım kanalı, hedef PHP sürümü, SHA-256 özeti, isteğe bağlı kodlama sona erme süresi ve derleme zaman damgası. EncodingTechnology, bir yapıtı kodlamak için kullanılan aracı, yapıtın hiç kodlanıp kodlanmadığından ayırır; bir düz metin yapıtının her zaman None değeri vardır.

DistributionChannel, iki kaygıyı açıkça ayırır: bir yapıt kaynağı (ikili depolama) ve bir paket tüketim katmanı (bir composer require çağrısının okuduğu kayıt defteri). AccessBoundary, bir yapıta kimin erişebileceğini belirler — ücretli müşteriler, süre sınırlı değerlendirme veya asla müşteriye yönelik olmayan dahilî CI/QA/staging — ve her sınır kimlik doğrulaması gerektirir.

PublishingPlan, derleme profillerinden ve release bildiriminden türetilir. Her profil, yayımlama hedeflerine çözümlenir: bir yapıt-kaynağı hedefi ve bir tüketim-katmanı hedefi, doğru erişim sınırı uygulanmış olarak; böylece ücretli ve değerlendirme yapıtları doğru yere yönlendirilir.

Yük taşıyan karar, bir release’i gevşek yapılandırma değil, değişmez türü belirtilmiş değer nesneleri olarak modellemektir. Yapıt kaynağı ve tüketim katmanı, birbirinden farklı enum türünde kaygılardır ve erişim sınırları açıktır. Böylece yanlış yönlendirilmiş bir yapıt — bir müşteri kanalına yerleştirilmiş dahilî bir derleme — sessiz bir üretim hatası değil, bir modelleme hatası olarak ortaya çıkar. Plan, yetkili değil, türetilmiş kalır: amaçlanan hedefleri adlandırır, taşımayı ise release araçlarınız gerçekleştirir. Aynı nesneler Core sözleşmesi aracılığıyla çözümlenir; böylece sürüm yükselten bir tüketici hiçbir çağıran kodu değiştirmez. Bu süreklilik, bir açık çekirdek sınırının amacıdır — bir yeniden yazımı değil, Enterprise yüzeyini satın alırsınız. Tasarım arka planı: Açık çekirdek, kilitlenme yok.

SınıfSorumluluk
ReleaseManifestDeğişmez en üst düzey release belgesi.
ArtifactManifestYapıt başına meta veri ve doğrulama alanları.
BuildProfileYayımlanacak bir derleme yapılandırması.
DistributionChannelKaynak ve tüketim katmanı kanal enum’u.
AccessBoundaryPaid / Evaluation / Internal erişim enum’u.
EncodingTechnologyKodlama aracı enum’u (örn. kodlanmış / none).
PublishingPlan / PublishingTargetTüretilen plan ve hedef başına yönlendirme.
use NextPDF\Enterprise\Release\PublishingPlan;
$plan = PublishingPlan::fromProfiles($profiles, '3.1.0');
use NextPDF\Enterprise\Release\PublishingPlan;
use NextPDF\Enterprise\Release\PublishingEnvironment;
$plan = PublishingPlan::fromProfiles(
$profiles,
'3.1.0',
PublishingEnvironment::Production,
);
foreach ($plan->targets as $target) {
$logger->info('release.target', [
'version' => $plan->version,
'channel' => $target->channel->value,
]);
}
  • Yapıt kaynağı ve tüketim katmanı farklı kanallardır. Kaynak ikiliyi saklar; tüketim katmanı, ona işaret eden meta veriyi sunar. Bir composer require çağrısının nerede çözümlendiği hakkında akıl yürütürken bunları birleştirmeyin.
  • Bir düz metin yapıtı her zaman EncodingTechnology::None bildirir; kodlama-teknolojisi alanı “hangi araç” sorusunu yanıtlar, “korunmuş muydu” sorusunu değil.
  • Internal erişim sınırı yapıtları asla müşteriye yönelik değildir; bunları bir müşteri kanalına yönlendirmek, bu modelin açıkça görünür kılmak için tasarlandığı bir yapılandırma hatasıdır.
  • Yayımlama planı türetilmiştir, taşıma için yetkili değildir — amaçlanan hedefleri betimler; gerçek yükleme, release araçlarınız tarafından gerçekleştirilir.

Plan türetme, derleme profili sayısında doğrusaldır ve profil başına az sayıda hedef üretir. Değer nesneleri değişmezdir ve oluşturulması ucuzdur.

Release bildirimi, tedarik zinciri kanıt yollarını (SBOM, GPG imzası, sağlama toplamları) taşır. Bu modül bu referansları kaydeder ve yönlendirir; kendisi imza üretmez veya köken beyan etmez. Bildirimi, tek başına bir kanıt olarak değil, release işlem hattınız tarafından doğrulanacak meta veri olarak ele alın.

Release bildirimleri, kişisel veri değil, derleme ve yapıt meta verisi içerir. Yapıt depolamasına olağan denetimlerinizi uygulayın.

Release günlükleri, imzalama anahtar materyalini veya dahilî depolama yollarını değil, sürümü ve kanalı kaydetmelidir.

Bu modül için hiçbir standart uygunluğu iddia edilmez; bu bir release-modelleme katmanıdır. Tedarik zinciri kanıtı (SBOM, imzalar, sağlama toplamları) bildirim tarafından referans alınır ve release araçlarınız tarafından üretilip doğrulanır.

Bu modül hiçbir kriptografik işlem gerçekleştirmez. GPG imzalama ve sağlama toplamı üretimi, haricî release araçları tarafından gerçekleştirilir ve burada yalnızca referans alınır.

Girdiler, çağıranın sağladığı derleme profilleri ve bildirim verisidir. Model, kaynak-vs-tüketim ve erişim-sınırı ayrımlarını açık kılar; böylece yanlış yönlendirme (örneğin dahilî bir yapıtı açığa çıkarmak) sessiz değil, görünür bir modelleme hatası olur.

  • ReleaseManifest, bir sürüm için değişmez en üst düzey belgedir; şema sürümü, eklemeli için minör, bozucu için majör kuralını izler.
  • DistributionChannel, yapıt kaynağını ve paket tüketim katmanını farklı kaygılar olarak tutar; bunları birleştirmek, bu türün açık kıldığı bir modelleme hatasıdır.
  • AccessBoundary, Paid / Evaluation / Internal ayrımını yapar ve her sınır kimlik doğrulaması gerektirir; bir Internal yapıt asla müşteriye yönelik değildir.
  • PublishingPlan, derleme profillerinden ve release bildiriminden türetilir; amaçlanan hedefleri betimler ve taşıma için yetkili değildir.

Bu sayfa yalnızca dışarıdan gözlemlenebilir davranışı ve desteklenen genel API yüzeyini belgeler. Dahilî ad alanı yolları, yardımcı sınıflar, mekanizma tabloları, runbook dosya adları ve bilet önekleri kapsam dışıdır.

NextPDF Core’un hiçbir release-modelleme katmanı yoktur. Release bildirimleri, derleme profilleri veya bir yayımlama planı gerektiren yalnızca Core’lu bir tüketici, bunları kendisi modellemelidir.

NextPDF Pro, türü belirtilmiş release bildirimlerini, derleme profillerini, erişim sınırlarını veya türetilen yayımlama planını sağlamaz; bunlar yalnızca nextpdf/enterprise paketinde sevk edilir. Yalnızca Pro’lu bir dağıtımın, bir release-modelleme isteğini karşılayacak hiçbir Enterprise bileşeni yoktur. Enterprise yüzeyi için Enterprise genel bakışına bakın.

Bildirim şeması, kaynak-vs-tüketim ayrımı ve erişim-sınırı yönlendirmesi, yalnızca davranış düzeyinde açıklanmıştır. Dahilî kanal-çözümleme tabloları ve dahilî yayımlama-hedefi bağlantıları, genel yüzeyin kapsamı dışındadır ve burada yeniden üretilmez.

Yayımlama planı, taşıma değil, türetilmiş meta veridir: gerçek yapıt yüklemesi, release araçlarınız tarafından gerçekleştirilir. Tedarik zinciri kanıtı (SBOM, GPG imzası, sağlama toplamları) bildirim tarafından referans alınır ve bu modül tarafından değil, release işlem hattınız tarafından üretilip doğrulanır. Her kanal için yönlendirme, kimlik bilgileri ve depolama operatörün sorumluluğundadır.

Bu sayfa bir release-modelleme katmanını açıklar. Tedarik zinciri kanıt referanslarını kaydeder ve yönlendirir; kendisi imza üretmez, köken beyan etmez, bir sürümü sertifikalandırmaz veya hukuki tavsiye oluşturmaz. Bildirimi tek başına bir kanıt olarak ele almak yanlıştır; doğrulama, release işlem hattınız tarafından gerçekleştirilir. Bir release’in sözleşmesel veya düzenleyici yükümlülüklerinizi karşılayıp karşılamadığına karar vermek sizin sorumluluğunuzdadır.