Tarif kuralları
Tarif kuralları
“Tarif kuralları” başlıklı bölümEntegrasyon Cookbook’undaki çalıştırılabilir her tarif aynı sözleşmeye uyar. Bu sayfa, bir tariften ne beklemeniz ve bir tarif yazarının neleri sağlaması gerektiğini bilmeniz için bu sözleşmeyi belgeler. Betimleyicidir: kuralı kayıt altına alır. Zorunlu kılma burada değil, depo araçlarında ve stil geçersiz kılma sayfasında yer alır.
Her entegrasyon, tariflerini kendi kaynak deposundaki docs/public/ dizininde saklar; toplayıcı da bunları bu siteye çeker. Bu kurallar, tarif nerede bulunursa bulunsun geçerlidir.
1. Örnekler gerçek koddur, elle yazılmış parçacıklar değil
“1. Örnekler gerçek koddur, elle yazılmış parçacıklar değil” başlıklı bölümBir tarifteki kod bir depoda bulunur. Metin içine elle yazılmış bir parçacık değildir.
- Beş satırdan uzun her PHP kod bloğu, ilgili depodaki bir
examples/dizininden veya birtests/Cookbook/dizininden gelir. - Blok, kaynağını kod çitinin bilgi dizesinde bildirir; örneğin
title="examples/standalone.php". - İlgili bir test, o örneğin hâlâ derlendiğini ve belgelenen çıktıyı ürettiğini doğrular; böylece oluşturulan sayfa, gösterdiği koddan sapamaz.
Bu kural, belge stili geçersiz kılma sayfası §3.4’ten (“Örnekler çalıştırılabilir olmalıdır”) gelir. Destekleyici bir örneği veya testi olmadan kod gösteren bir tarif bu kuralı karşılamaz.
2. Blok başına tek dil, hata işleme görünürdür
“2. Blok başına tek dil, hata işleme görünürdür” başlıklı bölüm- Çitlenmiş bir kod bloğu, açıkça bildirilmiş tam olarak tek bir dil içerir (
```php,```bash,```yaml,```json). Çıplak çit kullanılmaz. - Üretime hazır bir uygulama kılavuzu olarak işaretlenmiş bir tarif,
try/catchifadesini açıkça gösterir, çıplak\Exceptionyerine uygulanabilen en özel istisna türünü yakalar ve catch bloğu, okuyucunun kopyalayabileceği bir işlem yapar (günlüğe kaydetme, yeniden fırlatma veya tanımlı bir hata nesnesi döndürme). Boş catch blokları kullanılmaz. - Hypertext Transfer Protocol (HTTP) taşıma katmanını kullanan entegrasyonlarda tarif, taşıma hatası ile başarısız HTTP durumunu iki ayrı durum olarak ele alır. Bir PHP Standards Recommendation (PSR)-18 istemcisi, yalnızca istek gönderilemediğinde tiplendirilmiş bir istemci istisnası fırlatır. Bir
4xxveya5xxyanıtı, tarifin yakaladığı bir istisna değildir; tarifin incelediği normal bir dönüş değeridir.
3. Yeniden üretilebilirlik ön bilgisi
“3. Yeniden üretilebilirlik ön bilgisi” başlıklı bölümHer tarif, çıktısının ne ölçüde yeniden üretilebilir olduğunu bildirir. Sitenin içerik şemasının zorunlu kıldığı §5.1 ön bilgi sözleşmesini kullanır. İlgili alanlar şunlardır:
reproducibility_profile—bitwise,structuralveyasemanticdeğerlerinden biri.bitwise, sabitlenmiş girdiler verildiğinde çıktı baytlarının çalıştırmalar boyunca aynı kalacağı anlamına gelir.structural, belge yapısının aynı olduğu, buna karşın rastlantısal baytların (zaman damgaları, nesne sırası) farklılık gösterebileceği anlamına gelir.semantic, oluşturulan sonucun bayt veya yapı garantisi olmadan eşdeğer olduğu anlamına gelir. Bir tarif, mevcut en güçlü profili değil; dürüstçe destekleyebileceği en güçlü profili belirtir.output_hash— profilbitwiseolduğunda, beklenen çıktının SHA-256 değeri; böylece bir okuyucu belgelenen sonucu doğrulayabilir. Profil kararlı bir karma değeri desteklemediğinde boş bırakılır.runnable_example— tarifin çıktısını üretenexamples/…yolu; sayfayı §1’deki kaynak destekli örneğe bağlar.performance_budget— tarif için isteğe bağlı bir duvar saati ve tepe bellek üst sınırı; böylece performans iddiası da taşıyan bir tarif sınırlı ve test edilebilir kalır.compatibility— tarifin üzerinde çalıştığını iddia ettiği PHP sürümleri. Tarifler varsayılan olarak PHP 8.4 kullanır; yalnızca 8.4’e özgü bir özelliği adlandıran bir tarif, geri uyarlamayı ön bilgisinde listeler ve özelliği kod bloğunda belirtir.
Yeniden üretilebilirlik profili, §8.4 yeniden üretilebilirlik sözleşmesini ifade eder. Bunu, “çıktı” ifadesinin tam baytları mı yoksa eşdeğer bir belgeyi mi belirttiğini anlamak için kullanırsınız.
4. Yayımlama kapısı
“4. Yayımlama kapısı” başlıklı bölümBu Cookbook’taki her sayfa, Yazım Kapısı’nı geçene kadar publish: false taşır. Varsayılan davranış reddetmektir: bir sayfanın birleştirilmesi onu yayımlamaz; yalnızca ön bilgide kayıt altına alınmış açık bir kapı kararı yayımlanmasını sağlar. Gerçek bir uyumluluk motoru kesintisi nedeniyle düzenleyici alıntıları sabitlenemeyen bir tarif, ayrıca çözülmemiş alıntı işaretçisi taşır. Alıntı yeniden sabitlenene kadar publish: false olarak kalır. Bu işaretçi, deponun erişimle artırılmış üretim (RAG) altyapısı kesintileri için yedek protokolüyle yönetilir; bir tarif yazarı, bir alıntı uydurmak veya iddiayı bırakmak yerine bu protokolü izler.
5. Köken alanlarını toplayıcı yazar
“5. Köken alanlarını toplayıcı yazar” başlıklı bölümBir tarif yazarı, toplayıcının sahip olduğu dört kaynak köken alanını elle yazmaz: source_repo, source_ref, source_hash ve manifest_hash. Toplayıcı, tarifi kaynak deposundan çekerken bunları doldurur; böylece yayımlanan sayfa, tam olarak hangi depo revizyonundan üretildiğini kayıt altına alır. Bir yazar, bu alanların herhangi birinde bir yer tutucu bırakırsa toplayıcı onun üzerine yazar; yer tutucu hiçbir zaman yayımlanan sayfaya ulaşmaz.
Bu Cookbook’taki bir tarif; testi olan kaynak destekli koda, blok başına tek dile, üretim uygulama kılavuzları için açık hata işlemeye, dürüst bir yeniden üretilebilirlik profiline, Yazım Kapısı’na kadar geçerli olan publish: false varsayılanına ve toplayıcı tarafından eklenen kökene sahiptir. Altısının tamamını karşılayan bir sayfa bir tariftir; daha azını karşılayan bir sayfa ise taslaktır.
Ayrıca bakınız
“Ayrıca bakınız” başlıklı bölüm- Entegrasyon Cookbook — paket ve çekirdek kısıtları için başvuru.
- Bir entegrasyon seçin — kullanım senaryosu karar matrisi.