Pro sürüm
Projection
Bir bakışta
“Bir bakışta” başlıklı bölümProjection, bir PDF içerik akışını düz bir belirteç listesine ayrıştırır ve bu belirteçlerden yeni bir içerik akışı yayar. Yayma, açıkça bildirilmiş bir amaç gerektirir. Bu modül, genel amaçlı bir PDF düzenleyicisi değildir.
Not. Buradaki “Projection”, içerik akışı belirteci izdüşümü anlamına gelir. Koordinat veya coğrafi konum izdüşümü değildir. Coğrafi konum özellikleri için Geo modülüne bakın.
Kullanılabilirlik ve lisanslama
“Kullanılabilirlik ve lisanslama” başlıklı bölümBu yetenek NextPDF Pro (nextpdf/pro) ile birlikte gelir ve bir Pro 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 edinin.
Özellik başına ayrı bir lisans bayrağı yoktur. Gereken bir ProjectionIntent argümanı, bir lisans anahtarı değil, API düzeyinde yaymayı kapar.
Yükleme
“Yükleme” başlıklı bölümcomposer require nextpdf/pro:^3Kod, NextPDF\Pro\Projection ad alanı altında yer alır.
Kavramsal genel bakış
“Kavramsal genel bakış” başlıklı bölümContentProjectionWriter, üç statik işlem sağlar:
tokenize(), bir içerik akışını düz, sıralı bir belirteç listesine ayrıştırır. Bu salt okunurdur ve amaç gerektirmez.emit(), bir (muhtemelen değiştirilmiş) belirteç listesinden yeni bir içerik akışı yazar. BirProjectionIntentgerektirir.roundTrip(), doğrulama için değişiklik olmadan belirteçleştirir ve yeniden yayar.
Çıktı, kavramsal olarak yeni bir içerik akışıdır, orijinalin düzenlenmiş bir kopyası değildir. Yayıcı, boşluk ve yorumları normalize eder ancak operatör dizisini ve işlenen değerlerini tam tutar. Amaç enum’unun tam olarak iki durumu vardır — temizleme (karartma) ve steganografik gömme — ve kasıtlı olarak hiçbir genel durumu yoktur; böylece statik analiz, istenmeyen kullanımı algılayabilir.
Neden bu şekilde çalışır
“Neden bu şekilde çalışır” başlıklı bölümProjection, genel amaçlı bir PDF düzenleyicisi olmayı reddeder. Yayma, düz bir belirteç listesinden taze bir içerik akışını yeniden oluşturur; böylece orijinal, yerinde asla değiştirilmez. Karartmayı güvenilir kılan şey, bu tek yönlü modeldir: kaldırılan belirteçler, üzerine boyanmak yerine çıktıda yer almaz. Bu nedenle emit(), açık bir ProjectionIntent talep eder ve enum yalnızca temizleme ile steganografik gömmeyi sunar — genel bir durum yoktur. Statik analiz de bildirilmiş, bilinen bir amaçtan yoksun her yaymayı işaretleyebilir. Tasarım, düzenleme kolaylığını, yıkıcı amacın çağrı yerinde her zaman görünür olması güvencesiyle değiş tokuş eder.
Tasarım arka planı: Karartma siyah bir dikdörtgen değildir.
Davranış sözleşmesi
“Davranış sözleşmesi” başlıklı bölümtokenize($contentStream), dizeleri, adları, sayıları, dizileri, sözlükleri, mantıksal değerleri, null’ı ve operatörleri kapsayan bir belirteç listesi döndürür.emit($tokens, $intent), açık bir amaç gerektirir; tür sistemi bunu çağrı yerinde uygular.roundTrip()çıktısı, girdiyle bayt-özdeş değildir, ancak operatör dizisi ve işlenen değerleri eşleşir.- Yayıcı, tamsayı ve kayan nokta ayrımını korumak için sayıları biçimlendirir ve değişmez dizeleri yeniden kaçar.
- İki bildirilmiş amaç, temizleme (yıkıcı, geri döndürülemez bir karartma işlemi) ve steganografik gömmedir.
Kod örneği — Hızlı başlangıç
“Kod örneği — Hızlı başlangıç” başlıklı bölümAşağıdaki, belgelenmiş genel API’yi yansıtır. Depo, bu modül için çalıştırılabilir bir örnek sunmaz.
use NextPDF\Pro\Projection\ContentProjectionWriter;
$tokens = ContentProjectionWriter::tokenize($contentStream);Kod örneği — Üretim
“Kod örneği — Üretim” başlıklı bölümuse NextPDF\Pro\Projection\ContentProjectionWriter;use NextPDF\Pro\Projection\ProjectionIntent;
$tokens = ContentProjectionWriter::tokenize($contentStream);
// Validate first: a clean round-trip must hold before any modification.$check = ContentProjectionWriter::roundTrip($contentStream);
// Apply your modification to $tokens, then emit with a declared intent.$output = ContentProjectionWriter::emit($tokens, ProjectionIntent::Sanitization);Uç durumlar ve dikkat edilecekler
“Uç durumlar ve dikkat edilecekler” başlıklı bölüm- Bir değiştir-ve-yay dizisine güvenmeden önce
roundTrip()’i çalıştırın ve doğrulandığını teyit edin. Başarısız bir gidiş-dönüşü bir durma koşulu olarak değerlendirin. - Temizleme amacı geri döndürülemezdir. Kaldırılan içerik, çıktıdan kurtarılamaz.
- Yayıcı, boşluğu normalize eder ve yorumları düşürür; bu nedenle değiştirilmemiş bir gidiş-dönüş için bile orijinalle bayt düzeyinde karşılaştırma farklılık gösterir.
Performans
“Performans” başlıklı bölümBelirteçleştirme ve yayma, içerik akışı uzunluğunda doğrusaldır. Belirteçleyici, sekizlik kaçış okumalarını ve onaltılık dize işlemeyi sınırlar. Yayımlanmış bir verim değeri yoktur. Temsili içerik akışlarıyla ölçün.
Güvenlik notları
“Güvenlik notları” başlıklı bölümGereken amaç argümanı, genel bir düzenleyici olarak kötüye kullanımı önler. Temizleme amacı yıkıcı ve geri döndürülemezdir; önce gidiş-dönüşü doğrulayın ve dağıtımdan önce karartılmış çıktıyı teyit edin. Bu modül, hiçbir içeriği günlüğe kaydetmez.
Uygunluk
“Uygunluk” başlıklı bölümBelirteçleştirme, ISO 32000-2’deki sözcüksel ve içerik akışı kurallarını izler; kaynak, ilgili kuralları açıklar. RAG külliyatı yazma sırasında kullanılamadığından, bu sayfa hiçbir harici kural tanımlayıcısı öne sürmez ve uygunluk beyanlarını modülün testleriyle doğrulanan davranışla sınırlar.
Enterprise sınır notu
“Enterprise sınır notu” başlıklı bölümEnterprise, Projection davranışını değiştirmez. Enterprise, ayrı olarak belgelenen daha üst katman gizlilik ve uyumluluk özellikleri ekler; bunlar, izdüşüm API’sini kullanmak için gerekli değildir.
Core geri dönüşü / alternatifi
“Core geri dönüşü / alternatifi” başlıklı bölümBir Core eşdeğeri yoktur. Pro olmadan, çağıranlar kendi içerik akışı belirteçleyicilerini oluşturmalıdır; amaç kapılı izdüşüm modeli, yalnızca Pro’ya özgü bir eklentidir.
Yayın sınırı
“Yayın sınırı” başlıklı bölümBu sayfa, yalnızca dışarıdan gözlemlenebilen davranışı ve desteklenen genel API yüzeyini belgeler. İç ad alanı yolları, yardımcı sınıflar, mekanizma tabloları, runbook dosya adları ve bilet önekleri kapsam dışındadır.