Contao 4.11.0 dostępne

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:

# config/config.yml
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.

# config/config.yml
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.