Wróciłem ostatnio do dwóch pluginów Craft CMS rozwijanych w ramach CoolTRONIC.pl: PDF Generator oraz CDN Cache & Preload. Oba projekty zaczynały jako narzędzia przygotowane pod konkretne potrzeby, ale z czasem stały się elementami, które warto było uporządkować, dopisać i lepiej przygotować do pracy w środowiskach produkcyjnych.
Nie jest to wpis o jednej dużej funkcji. Bardziej chodzi o dojrzewanie kodu: stabilniejsze generowanie dokumentów, czytelniejszą obsługę cache, poprawione paczki, lepszą dokumentację oraz większą przewidywalność działania po wdrożeniu.
PDF Generator powstał po to, aby generować dokumenty PDF bezpośrednio z szablonów Craft CMS. W praktyce oznacza to, że dokument może korzystać z tego samego systemu danych, z którego korzysta strona: wpisów, pól niestandardowych, szablonów Twig oraz logiki aplikacji.
Taki mechanizm przydaje się przy ofertach, raportach, potwierdzeniach, dokumentach wewnętrznych albo materiałach, które muszą wyglądać spójnie z resztą serwisu. Zamiast przygotowywać osobne pliki ręcznie, można wygenerować dokument na podstawie danych zapisanych w CMS.
W ostatnich zmianach skupiłem się głównie na tym, żeby plugin był łatwiejszy do utrzymania i bardziej przewidywalny. Poprawione zostało podejście do ścieżek, generowania dokumentów, bezpieczeństwa dostępu do plików oraz zgodności z nowszymi wersjami Craft CMS.






Największa wartość takich poprawek często nie jest widoczna od razu dla użytkownika końcowego. Dokument po prostu ma się wygenerować, wyglądać poprawnie i nie wymagać ręcznego poprawiania po każdej zmianie środowiska.
W praktyce oznacza to kilka rzeczy:
Przy generowaniu PDF-ów drobne różnice w środowisku potrafią mieć znaczenie. Inaczej zachowuje się lokalna instalacja developerska, inaczej serwer produkcyjny, a jeszcze inaczej środowisko z dodatkowymi ograniczeniami dostępu do plików. Dlatego zależało mi na tym, żeby plugin lepiej znosił takie różnice.
Drugi plugin, CDN Cache & Preload, dotyczy warstwy cache i dostarczania treści. Nie zastępuje Cloudflare ani Varnisha. Jego zadaniem jest ułatwienie pracy w środowisku, w którym takie warstwy cache już istnieją albo są częścią architektury strony.
W prostym scenariuszu wygląda to tak: redaktor zmienia treść w Craft CMS, strona zapisuje nową wersję, a plugin pomaga wyczyścić odpowiednie adresy w cache. Dzięki temu odwiedzający nie muszą czekać, aż stara wersja sama wygaśnie.
W bardziej rozbudowanym scenariuszu cache można także podgrzać po czyszczeniu. Plugin może pobrać adresy z mapy strony i przygotować wybrane podstrony wcześniej, zanim trafi na nie pierwszy użytkownik po zmianach.






Po wyczyszczeniu cache pierwsze wejście na stronę bywa wolniejsze, bo aplikacja musi ponownie wygenerować odpowiedź. Preload zmienia ten moment. System sam odwiedza wybrane adresy, odbudowuje gotowe odpowiedzi i sprawia, że użytkownik częściej trafia już na przygotowaną wersję strony.
To szczególnie przydatne przy stronach opartych na Craft CMS, gdzie widoki bywają mocno zależne od relacji między treściami, pól niestandardowych, szablonów Twig i dodatkowej logiki aplikacji.
W takim układzie cache nie jest tylko dodatkiem do strony. Staje się częścią sposobu, w jaki strona działa po publikacji zmian.
Ważne jest jedno rozróżnienie. Varnish i Cloudflare są osobnymi warstwami infrastruktury. Plugin nie przejmuje ich roli. Nie jest firewallem, nie kończy połączenia SSL i nie zastępuje konfiguracji serwera.
Plugin pomaga natomiast połączyć aplikację z tymi warstwami w praktyczny sposób: wysłać żądanie czyszczenia cache, uruchomić preload, pominąć wybrane adresy, obsłużyć kolejkę zadań albo dopasować zachowanie do konkretnego wdrożenia.
Dzięki temu konfiguracja nie kończy się na ręcznym klikaniu w panelu CDN. Część procesu może działać razem z publikacją treści i codzienną pracą w CMS.
Najbardziej interesują mnie narzędzia, które rozwiązują konkretne problemy utrzymaniowe. Nie muszą być duże. Czasem większą wartość daje mały plugin, który dobrze obsłuży jeden proces, niż rozbudowany system wymagający ciągłego pilnowania.
PDF Generator porządkuje generowanie dokumentów. CDN Cache & Preload porządkuje pracę z cache po stronie aplikacji. Oba projekty są częścią tego samego podejścia: mniej ręcznej pracy, więcej przewidywalności i prostsze utrzymanie stron w środowisku produkcyjnym.
Niech Wam się spełnią wszystkie marzenia i niech Was nie opuszcza pasja do waszej kreatywności w tworzeniu własnych rzeczy, a może zainspiruję was do zmian związanych z waszym oprogramowaniem. Jeśli chcecie dowiedzieć się więcej o moich projektach lub skorzystać z moich narzędzi, zapraszam Was do odwiedzenia sklepu z wtyczkami Craft CMS i serwisu GitHub.
Pluginy są rozwijane publicznie i można znaleźć je w ekosystemie Craft CMS oraz na GitHubie. Dokumentacja i repozytoria są miejscem, w którym najlepiej sprawdzić aktualne wymagania, sposób instalacji oraz zakres dostępnych opcji.
W kolejnych zmianach chcę dalej porządkować dokumentację, przykłady konfiguracji oraz obsługę scenariuszy, które najczęściej pojawiają się przy realnych wdrożeniach.
Zmiany w tych pluginach nie są przypadkowe. Wynikają z realnych problemów, które pojawiają się przy utrzymaniu stron, dokumentów, cache i infrastruktury.
Właśnie takie rzeczy często decydują o tym, czy projekt po wdrożeniu jest wygodny w obsłudze. Nie tylko dla programisty, ale też dla osoby, która później publikuje treści, aktualizuje stronę i oczekuje, że system będzie działał przewidywalnie.