Lỗi tuân thủ
Phạm vi
Phần tiêu đề “Phạm vi”Các mục này bao quát hai ngoại lệ trong không gian tên NextPDF\Compliance\Exception.
Cả hai đều được ném bởi hệ thống con tuân thủ: pipeline clause-hash chuẩn tắc
và vòng đời tuân thủ (cache Document Compliance Evidence, bộ thăng cấp từ
audited-sang-terminal, và bộ quan sát cooldown).
Cả hai lớp đều final và mở rộng NextPdfException, vốn tự nó mở rộng
\RuntimeException và hiện thực ContextAwareExceptionInterface. Không lớp con nào
ghi đè getContext(), nên cả hai kế thừa bản hiện thực cơ sở,
vốn trả về một mảng rỗng. Chi tiết chẩn đoán được mang trong thông báo ngoại lệ,
không phải trong getContext(). Hãy bắt một trong hai kiểu dưới dạng
NextPdfException, hoặc dưới dạng \RuntimeException nếu bạn có các trình xử lý hiện có.
Yêu cầu môi-trường-chạy clause-hash
Phần tiêu đề “Yêu cầu môi-trường-chạy clause-hash”ClauseHashRequirementException
Phần tiêu đề “ClauseHashRequirementException”- Khi nào nó được ném. Từ
ClauseHash::compute()khi môi trường chạy PHP của host thiếu một yêu cầu cứng của pipeline clause-hash chuẩn tắc. Hiện yêu cầu duy nhất như vậy làext-intl, dùng cho chuẩn hóa Unicode Normalization Form KC (NFKC). Vị trí throw duy nhất nêu ra thông báoClauseHash requires ext-intl for NFKC normalisation. - Vì sao nó thất bại theo hướng đóng.
composer.jsonbắt buộcext-intl, nên cái này kích hoạt chỉ trong một downstream cấu hình sai vốn đóng gói NextPDF mà không có intl. Pipeline từ chối tính một digest không-được-NFKC-chuẩn-hóa thay vì âm thầm phát ra một hash không tương thích với mọi bên tiêu thụ clause-hash khác. - Context.
getContext()trả về một mảng rỗng. Nguyên nhân được nêu trong thông báo. - Khôi phục. Hành động của người vận hành: cài đặt và bật tiện ích PHP
intltrên host, rồi thử lại. Không có giải pháp thay thế trong mã; digest đã chuẩn hóa không thể được tạo ra nếu không có nó.
Lỗi vòng đời tuân thủ
Phần tiêu đề “Lỗi vòng đời tuân thủ”ComplianceLifecycleException
Phần tiêu đề “ComplianceLifecycleException”- Khi nào nó được ném. Từ hệ thống con vòng đời tuân thủ khi một
bất biến cấu trúc trên
claims.jsonhoặc pipeline lưu trữ của nó bị vi phạm tại môi trường chạy. Các vị trí throw trải khắp bộ thăng cấp audited-sang-terminal, bộ quan sát cooldown, và cache tăng dần Document Compliance Evidence. Các trigger cụ thể là:- Tài liệu gốc hỏng khuôn —
claims.jsonkhông giải mã thành một đối tượng, hoặcclaims.standardskhông phải một đối tượng JSON (ví dụ,claims.json must decode to an object,claims.standards must be a JSON object,claims.json invalid JSON: <detail>). - Lỗi đọc —
claims.jsonthiếu hoặc không đọc được (ví dụ,claims.json not found at: <path>,claims.json unreadable at <path>). - Lỗi I/O ghi-nguyên-tử trong pipeline lưu trữ — temp open,
flock, ghi ngắn,fflush,renamenguyên tử, và ghi sidecar (ví dụ,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>). - Lỗi phía-bộ-mã-hóa —
json_encode()từ chối payload đi ra (ví dụ,claims.json encode failed: <detail>). - Lỗi bootstrap cache-bằng-chứng — cache tăng dần không thể tạo
hoặc ghi thư mục gốc của nó (ví dụ,
IncrementalEvidenceCache: cannot create rootDir <path>,IncrementalEvidenceCache: write failed for <path>,IncrementalEvidenceCache: rename failed for <path>). - Vi phạm bất biến nội bộ — ví dụ một
gmdate produced empty timestamphoặcfqClauseId: empty clauseKey.
- Tài liệu gốc hỏng khuôn —
- Vì sao nó tồn tại. Đây là một thay thế có-kiểu-theo-lĩnh-vực cho việc dùng trước đây của
\RuntimeExceptiontrong mã vòng đời và cache. Nó không thay đổi hợp đồng môi-trường-chạy, vìNextPdfExceptionđã mở rộng\RuntimeException; các mệnh đềcatch (\RuntimeException $e)hiện có vẫn hoạt động. - Context.
getContext()trả về một mảng rỗng. Đường dẫn gây lỗi và lỗi cụ thể được nêu trong thông báo; các lỗi giải-mã và mã-hóa JSON cũng móc xích\JsonExceptionnền làm ngoại lệ trước, nên hãy đọcgetPrevious()cho những lỗi đó. - Khôi phục.
- Với các lỗi hình dạng và đọc, đây là một hành động của người vận hành: kiểm tra
claims.jsontại đường dẫn được nêu trong thông báo, xác nhận nó là JSON hợp khuôn có gốc và thành viênstandardslà các đối tượng, và xác nhận nó hiện diện và đọc được. - Với các lỗi ghi-nguyên-tử và bootstrap-cache, kiểm tra sự tồn tại, quyền, và dung lượng trống của thư mục đích, rồi thử lại.
- Với các lỗi phía-bộ-mã-hóa, đây là một hành động của nhà phát triển: payload được trao cho
json_encode()không mã hóa được. Ghi lại ngoại lệ trước trong chuỗi và thông báo cho một báo cáo lỗi.
- Với các lỗi hình dạng và đọc, đây là một hành động của người vận hành: kiểm tra