Pakiet CodeIgniter udostępnia fabryki usług, funkcje pomocnicze oraz niewielki komponent biblioteki Pdf, który opakowuje pojedynczy dokument w formacie Portable Document Format (PDF). Używaj komponentu opakowującego w kontrolerach. Przetwarzanie w kolejce korzysta ze statycznych konstruktorów typu callable, ponieważ ładunki kolejki CodeIgniter muszą być zserializowanymi danymi.
Skorzystaj z tego przewodnika przy projektowaniu przepływów kontrolerów, usług, konstruktorów kolejki oraz testów wokół pakietu nextpdf/codeigniter.
Statyczne, bezpieczne dla kolejki konstruktory akceptowane przez GeneratePdfJob.
app/Libraries/*
Opcjonalne komponenty opakowujące aplikacji dla powtarzalnych przepływów pracy z dokumentami.
app/Services/*
Pobieranie danych domenowych i zasady przechowywania.
app/Config/NextPdf.php
Nadpisania konfiguracji pakietu na poziomie aplikacji.
tests/app/PdfBuilders/*
Testy konstruktorów i ładunków kolejki.
Korzystaj z funkcji pomocniczych pakietu w krótkich przepływach. Stosuj jawne wywołania usług, gdy budowanie dokumentu należy do klasy, którą można testować bezpośrednio.
Konstruktory kolejki powinny być statyczne, deterministyczne oraz umieszczone w App\PdfBuilders. Utrzymuj tablicę kontekstu na tyle prostą, aby można ją było zserializować i poddać audytowi.
Zadanie ogranicza dane wyjściowe do skonfigurowanego katalogu PDF aplikacji. Jeśli aplikacja wymaga przechowywania specyficznego dla najemcy, umieść tę zasadę w jednej usłudze i przetestuj ją przed wysłaniem zadania.
Testy funkcji pomocniczych weryfikują, że pdf() oraz pdf_document() zwracają nowe obiekty.
Testy odpowiedzi weryfikują nagłówki i normalizację nazwy pliku.
Testy kolejki obejmują nieprawidłowe ciągi konstruktorów i niebezpieczne ścieżki wyjściowe.
Testy konstruktorów wykorzystują reprezentatywne dane kontekstowe.
Testy konfiguracji obejmują ścieżkę czcionek, ścieżkę pamięci podręcznej, przypadek wyłączonego podpisywania oraz przypadek wyłączonego urzędu znaczników czasu (Time-Stamp Authority, TSA).