Budując aplikacje zawsze zaczyna się od małego fragmentu gdzie bez wielu zależności zmierzamy w stronę wielkiego monolitu. Fabien Potencier, twórca Symfony wyszedł z założenia, że framework nie powinien stać nam na drodze. W artykule przedstawię możliwości narzędzia Symfony Flex, które pojawiło się wraz z nową wersją Symfony.
Skąd się wzięło to zamieszanie?
Swego czasu pan Fabien Potencier napisał na swoim blogu:
“As a developer, I want to start small, without too many dependencies. But I also want to be able to grow my application as I see fit. From a micro-framework style app to a gigantic monolith. Your choice. The framework should not get in the way.”
Zauważył on iż rozwój architektury aplikacji znacząco się zmienił od czasu pierwszej wersji frameworka. Wcześniej dominowała struktura w postaci pojedynczej aplikacji. Następnie część rozwiązań dzieliło je na cześć frontendową (framowerki javascript) oraz backendową (np, REST FULL). Obecnie coraz większą popularność zyskuje architektura mikro serwisowa. Framewerk powinien być na tyle elastyczny aby dostosowywać się do każdej z możliwych sytuacji.
Czym jest Symfony Flex?
Flex pomaga programistom zarządzać cyklem życia zależności projektu poprzez automatyzowanie instalacji zależności w projekcie. Narzędzie to odpowiada za ściągania i konfiguracje bundli bez konieczności przeglądania dokumentacji. .
Sprawdza się w projektach każdej wielkości, od mikro serwisu do rozbudowanych monolitów. Nie jest też zależny od typu aplikacji, współpracuje zarówno z API jak i rozwiązaniami webowymi.
Jest dodatkiem do composer który nadpisuje akcje update, require i remove. Jednocześnie nie wchodzi z nim w konflikt. W momencie gdy nie może poradzić sobie z wykonaniem komendy przekazuje działanie do composer.
Jak to działa?
W chwili wykonania komendy flex odpytuje swój serwer w poszukiwaniu paczki. W przypadku negatywnego wyniku dalsze działania przekazywane są do composer.
Jeżeli paczka zostanie odnaleziona na serwerze zostaje zwrócony plik instrukcji (ang. recipe). Zawiera on informacje o potrzebnych bibliotekach oraz o sposobie ich konfiguracji. Aplikacja za pomocą composer ściąga potrzebne biblioteki następnie konfiguruje je.
Więcej informacji na temat tego niezwykłego narzędzia można znaleźć na stronie projektu https://flex.symfony.com/