Ukazała się nowa wersja Contao 4.11.0. Wydanie to zawiera nowe funkcje, takie jak wsparcie dla PHP 8 i Symfony 5, dynamiczne sitemapy XML, uproszczony sposób dostosowywania back-endu, nowy znacznik wstawiania "figure", niestandardowe wyrażenia regularne w DCA i wiele innych.
PHP 8
Wsparcie dla PHP 8 było bardziej skomplikowane niż się spodziewaliśmy, ponieważ sporo ostrzeżeń silnika zostało przeklasyfikowanych w PHP 8 (zobacz https://wiki.php.net/rfc/engine_warnings) i nagle komunikaty, które wcześniej były ignorowane jako E_NOTICE teraz uniemożliwiały wykonanie kodu jako E_WARNING. W szczególności, dostęp do niezdefiniowanych właściwości tablic w połączeniu z DCA był poważnym problemem - początkowy pull request dla tego problemu zawierał ponad 1800 zmian w ponad 100 plikach.
Ze względu na dużą liczbę zmian i spodziewane efekty uboczne, zdecydowaliśmy się nie włączać obsługi PHP 8 do Contao 4.9 LTS, jak pierwotnie planowano, ale jako nową funkcję w Contao 4.11.
Dynamic XML sitemaps
Dynamiczne sitemapy nie są już zapisywane jako statyczne pliki na serwerze, lecz generowane w zależności od kontekstu przy wywołaniu ścieżki /sitemap.xml
i zapisywane w pamięci podręcznej HTTP. W ten sposób chronione strony mogą zostać odnalezione przez crawlera Contao i włączone do indeksu wyszukiwania.
Dane wyjściowe można dostosować do własnych potrzeb za pomocą nowego zdarzenia ContaoCoreEvents::SITEMAP
.
Dostosowywanie back-end
Aby ułatwić dostosowanie zaplecza Contao do własnych potrzeb, dodano kilka opcji konfiguracyjnych:
contao:
backend:
attributes:
app-name: Foobar
app-version: 1.2.3
badge_title: staging
custom_css:
- files/backend/custom.css
custom_js:
- files/backend/custom.js
Atrybuty te zostaną dodane do znacznika body jako atrybuty danych. Identyfikator będzie wyświetlany zarówno na ekranie logowania, jak i w backendzie i pozwala na przykład na rozróżnienie między środowiskiem testowym i produkcji.
Insert tag "figure"
Oprócz istniejących insert tagów {{image}} i {{picture}}, Contao 4.11 dodaje insert tag {{figure}}, który wykorzystuje kreator rysunków z Image Studio. Trzy znaczniki wstawiania różnią się w następujący sposób:
- {{image}}: generuje pojedynczy, nieresponsywny znacznik <img>.
- {{picture}}: generuje responsywny obraz, ale nie bierze pod uwagę metadanych
- {{figure}}: generuje element <figure> zawierający wszystkie metadane.
Dodatkowo, istnieje teraz metoda figure()
, która może być używana we własnych szablonach plików.
Kopiowanie adresu URL podglądu
Do paska podglądu został dodany nowy przycisk, który pozwala na skopiowanie bieżącego adresu URL bez fragmentu /preview.php
, na wypadek gdybyś chciał udostępnić adres URL lub dalej go przetwarzać.
Nadpisanie tytułu strony w FAQs
Podobnie jak w przypadku wiadomości i wydarzeń, Contao 4.11 umożliwia nadpisanie tytułu strony, opisu i ustawień robotów dla każdego FAQ.
Edycja plików Twig w back-end
Pliki Twig, takie jak szablon konserwacji, można dostosować w Contao, tworząc w edytorze szablonów folder bundles/ContaoCoreBundle/Error
i zapisując w nim plik service_unavailable.html.twig
. Począwszy od Contao 4.11, te pliki Twig mogą być również edytowane bezpośrednio w back-end.
Domyślne wartości dla contao.image.sizes
Podczas definiowania wielu rozmiarów obrazów w konfiguracji aplikacji, wcześniej niemożliwe było uniknięcie kopiowania tych samych ustawień w kółko. Pod słowem kluczowym _defaults:
można teraz zdefiniować ustawienia domyślne, które mają zastosowanie do wszystkich rozmiarów obrazów.
contao:
image:
sizes:
_defaults:
formats:
jpg: [webp, jpg]
resize_mode: crop
large_photo:
width: 1000
height: 500
medium_photo:
width: 500
height: 250
small_box:
width: 100
height: 100
resize_mode: box
Kompatybilność z Symfony
Contao 4.11 zostało zaprojektowane jako wersja przejściowa z Symfony 4.4 do Symfony 5 i dlatego jest kompatybilne z obiema głównymi wersjami Symfony. Naszym celem jest połączenie wersji LTS obu projektów, tj. uruchomienie Contao 4.9 LTS z Symfony 4.4 LTS i Contao 4.13 LTS z Symfony 5.4 LTS.