Uygunluk hataları
Kapsam
“Kapsam” başlıklı bölümBu girişler, NextPDF\Compliance\Exception ad alanındaki iki istisnayı kapsar.
Her ikisi de uygunluk alt sistemi tarafından fırlatılır: kanonik hüküm-karması
işlem hattı ve uygunluk yaşam döngüsü (Belge Uygunluk Kanıtı önbelleği,
denetlenenden-uçbirime yükselten ve soğuma gözlemcisi).
Her iki sınıf da final’dır ve kendisi \RuntimeException sınıfını genişleten ve
ContextAwareExceptionInterface arayüzünü uygulayan NextPdfException sınıfını
genişletir. Hiçbir alt sınıf getContext() yöntemini geçersiz kılmaz; bu nedenle
her ikisi de boş bir dizi döndüren temel uygulamayı devralır. Tanılama ayrıntısı
getContext() içinde değil, istisna iletisinde taşınır. Her iki türü de
NextPdfException olarak ya da mevcut işleyicileriniz varsa \RuntimeException
olarak yakalayın.
Hüküm-karması çalışma zamanı gereksinimleri
“Hüküm-karması çalışma zamanı gereksinimleri” başlıklı bölümClauseHashRequirementException
“ClauseHashRequirementException” başlıklı bölüm- Ne zaman fırlatılır.
ClauseHash::compute()içinden, ana bilgisayar PHP çalışma zamanında kanonik hüküm-karması işlem hattının zorunlu bir gereksinimi eksik olduğunda. Şu anda böyle tek gereksinim, Unicode Normalleştirme Biçimi KC (NFKC) normalleştirmesi için kullanılanext-intluzantısıdır. Tek fırlatma yeri,ClauseHash requires ext-intl for NFKC normalisationiletisini fırlatır. - Neden güvenli biçimde başarısız olur.
composer.json,ext-intlzorunlu kılar; bu nedenle bu yalnızca NextPDF’i intl olmadan paketleyen, yanlış yapılandırılmış bir alt akışta tetiklenir. İşlem hattı, diğer her hüküm-karması tüketicisiyle uyumsuz bir karmayı sessizce yaymak yerine, NFKC-normalleştirilmemiş bir özet hesaplamayı reddeder. - Bağlam.
getContext()boş bir dizi döndürür. Neden iletide belirtilir. - Çözüm. Operatör eylemi: ana bilgisayarda PHP
intluzantısını yükleyip etkinleştirin, sonra yeniden deneyin. Kod içi bir geçici çözüm yoktur; normalleştirilmiş özet, onsuz üretilemez.
Uygunluk yaşam döngüsü hataları
“Uygunluk yaşam döngüsü hataları” başlıklı bölümComplianceLifecycleException
“ComplianceLifecycleException” başlıklı bölüm- Ne zaman fırlatılır. Uygunluk yaşam döngüsü alt sisteminden,
claims.jsonüzerinde veya kalıcılık işlem hattında yapısal bir değişmez çalışma zamanında ihlal edildiğinde. Fırlatma yerleri, denetlenenden-uçbirime yükselteni, soğuma gözlemcisini ve Belge Uygunluk Kanıtı artımlı önbelleğini kapsar. Somut tetikleyiciler şunlardır:- Hatalı kök belge —
claims.jsonbir nesneye kod çözmüyor ya daclaims.standardsbir JSON nesnesi değil (örneğin,claims.json must decode to an object,claims.standards must be a JSON object,claims.json invalid JSON: <detail>). - Okuma hataları —
claims.jsoneksik veya okunamaz (örneğin,claims.json not found at: <path>,claims.json unreadable at <path>). - Kalıcılık işlem hattındaki atomik-yazma G/Ç hataları — temp açma,
flock, kısa yazma,fflush, atomikrenameve yan-dosya yazma (örneğin,tmp open failed at <path>,tmp flock failed at <path>,tmp write short for <path>,tmp fflush failed at <path>,atomic rename failed for <path>,sha256 sidecar write failed at <path>). - Kodlayıcı tarafı hataları —
json_encode(), giden yükü reddeder (örneğin,claims.json encode failed: <detail>). - Kanıt-önbelleği önyükleme hataları — artımlı önbellek, kök dizinini
oluşturamaz ya da yazamaz (örneğin,
IncrementalEvidenceCache: cannot create rootDir <path>,IncrementalEvidenceCache: write failed for <path>,IncrementalEvidenceCache: rename failed for <path>). - Dahili değişmez ihlalleri — örneğin bir
gmdate produced empty timestampya dafqClauseId: empty clauseKey.
- Hatalı kök belge —
- Neden var. Bu, yaşam döngüsü ve önbellek kodunda
\RuntimeExceptionöğesinin önceki kullanımının etki alanı-türlü yerine geçenidir.NextPdfExceptionzaten\RuntimeExceptionsınıfını genişlettiğinden çalışma zamanı sözleşmesini değiştirmez; mevcutcatch (\RuntimeException $e)yan tümceleri çalışmaya devam eder. - Bağlam.
getContext()boş bir dizi döndürür. Hatalı yol ve belirli hata iletide adlandırılır; JSON-kod çözme ve kodlama hataları ayrıca temeldeki\JsonExceptionöğesini önceki istisna olarak zincirler; bu nedenle bunlar içingetPrevious()çıktısını okuyun. - Çözüm.
- Biçim ve okuma hataları için bu bir operatör eylemidir: iletide adlandırılan
yoldaki
claims.jsondosyasını inceleyin, kökü vestandardsüyesi nesne olan iyi-biçimli bir JSON olduğunu doğrulayın ve mevcut ve okunabilir olduğunu doğrulayın. - Atomik-yazma ve önbellek-önyükleme hataları için hedef dizinin varlığını, izinlerini ve boş alanını denetleyin, sonra yeniden deneyin.
- Kodlayıcı tarafı hatalar için bu bir geliştirici eylemidir:
json_encode()yöntemine verilen yük kodlanabilir değil. Bir kusur raporu için zincirlenmiş önceki istisnayı ve iletiyi yakalayın.
- Biçim ve okuma hataları için bu bir operatör eylemidir: iletide adlandırılan
yoldaki