Tworzenie oprogramowania w dużej mierze przypomina komponowanie muzyki. Każda część aplikacji powinna być napisana z dbałością o szczegóły i wychodzić naprzeciw potrzebom użytkownika. Podobnie jak każdy instrument w orkiestrze powinien bezbłędnie zagrać swoją partię, aby stać się całością utworu, który zachwyci słuchacza.

 

Ta metafora nie jest przypadkowa, ponieważ omówimy w tym artykule oprogramowanie Symfony. W dzisiejszych czasach 82% wszystkich stron internetowych stworzonych jest w języku programowania PHP. Witryny mogą opierać się albo na czystym PHP, albo na jednym z jego frameworków. Wszystko zależy od poziomu zaawansowania aplikacji, ram czasowych wykonania projektu, doświadczenia zespołu i wielu innych czynników.

 

Symfony plasuje się na trzecim miejscu w rankingu popularności, zaraz za Laravelem i Codelginterem. Framework ten jest szeroko chwalony w środowisku programistycznym, gdzie sami eksperci nie szczędzą pozytywnych opinii na jego temat. Dlaczego?

 

Czym jest framework?

Zanim przedstawimy Symfony, warto przybliżyć samo pojęcie framework. Jest to zbiór uniwersalnych programów wielokrotnego użytku, które działają w określony sposób i osiągają określone efekty, aby stworzyć konkretną aplikację. W pewnym sensie jest to więc szkielet lub fundament dla witryny www, czy oprogramowania. Podobnie jak na fundamencie tworzy się zupełnie spersonalizowany dom według planów i projektu, tak aplikacja powstaje na bazie frameworka, przy pomocy modułów.

 

Korzystanie z niego nie jest przymusem ani wymogiem. Z pewnością jednak ułatwia pracę developerowi. Po pierwsze, przyspiesza postępy w projekcie. Można zaoszczędzić nawet kilka dni pracy dzięki korzystaniu z gotowych rozwiązań, oferowanych przez określony framework. Ten oszczędzony czas można przeznaczyć na dopracowanie poszczególnych funkcji.

 

Po drugie, korzystanie z frameworka ułatwia utrzymanie aplikacji. Z racji korzystania z określone struktury, są pewne zasady, których trzeba przestrzegać. Dzięki temu w trakcie pracy dołączyć może kolejny zespół i bez problemu kontynuować działania. Po trzecie, korzystanie z frameworka ogranicza nieoczekiwane problemy w trakcie pracy. I oczywiście, po czwarte, liczne aktualizacje poprawiają stan bezpieczeństwa i zabezpieczenia całej platformy.

 

Zalety Symfony

Nie ma uniwersalnej odpowiedzi na pytanie „jaka platforma i framework jest najlepszy dla mojego projektu?”. W internecie jest mnóstwo opracowań, opinii i porównań, które pomogą dokonać takiego wyboru. Dzięki nim wizja projektu zacznie nabierać kształtów i odpowiedni framework sam się wyłoni. Należy jednak pamiętać o najważniejszym czynniku, który wpływa na decyzję o wyborze. Doskonałe narzędzie jest niczym w rękach osoby, która nie wie co z nim zrobić. Developer decydujący się na konkretny framework powinien się na nim znać lub być ogólnie pojętym specjalistą, który poradzi sobie z jego obsługą.

 

Pakiety i komponenty

Symfony powstało w 2005 roku i od tego czasu budowało sobie reputację w oczach programistów jako narzędzie dojrzałe, dopracowane i niezawodne do pisania oprogramowania na bazie PHP. Jest wyborem numer jeden, jeśli chodzi o tworzenie aplikacji webowych. 

 

Popularność zawdzięcza między innymi swojej wysokiej elastyczności. Posiada ogromne ilości opcji i rozszerzeń. Pakiety to prawie to samo co wtyczki. Należy je rozumieć jako pakiety plików do implementacji jakichkolwiek funkcji, niezależnie od charakteru budowanej platformy. Co najciekawsze, to fakt, że pakiety te nie są związane z daną platformą. Można z nich korzystać przy innych projektach i konfigurować pod kątem użyteczności w innych aplikacjach. Wszystko po to, by zmniejszyć koszty rozwoju kolejnych projektów.

 

Komponenty to uniwersalne pomoce, które redukują czas pracy przy kodzie, ponieważ ograniczają ilość rutynowych operacji, które musi wykonać developer. Dzięki temu może on skupić się na konkretnych dla projektu cechach. Jest 30 komponentów Symfony, które poprawią jakość pracy. Można korzystać z nich niezależnie i dodawać swoje własny moduły, nie psując przy tym niczego w architekturze. Co więcej, komponentów Symfony można używać jako samodzielnych modułów w innych frameworkach jak np. Laravel.

 

Korzysta się z nich, aby wyeliminować ścisłe zależności w architekturze. Im jest ich mniej, tym łatwiej będzie wprowadzać zmiany bez ryzyka uszkodzenia części systemu. Można dzięki temu wdrażać rozmaite rozwiązania w odpowiedzi na różne wymogi użytkownika i różne możliwe scenariusze. Wszystko w po to, aby stworzyć jak najbardziej elastyczną i odporną aplikację.

 

SensioLabs i partnerzy

Symfony posiada wsparcie SensioLabs, co nie jest częstym zjawiskiem w branży. To firma odpowiedzialna za stworzenie, rozwój frameworka oraz główny sponsor, który stale dba o jego reputację. Tworzy więc także oficjalne poradniki do pracy przy frameworku. Na stronie firmy znajduje się również kalendarz najbliższych konferencji, odbywających się na całym świecie. To pokazuje skalę zaangażowania i zaufania w produkt.

 

Podczas gdy wiele frameworków pojawiało się i znikało, to Symfony przetrwało próbę czasu i utrzymało się na rynku. Wiele platform korzysta w tego rozwiązania jak np. phpBB, Drupal, Magento czy eZ Publish. Firmy, które budowały strony i aplikacje na Symfony to National Geographic, Ted, Bla Bla Car, Vodue.

 

Wsparcie techniczne

Przy tworzeniu jakiejkolwiek aplikacji testy odgrywają ważną rolę, ponieważ gwarantują poprawne działanie komponentów i wczesne wykrywanie błędów, zanim produkt trafi do odbiorcy. Pakiety wielokrotnego użytku, brak surowych zależności i tworzenie własnych wzorów sprawiają, że Symfony jest frameworkiem, który nie mnoży niepotrzebnie problemów. Testowanie jednostek jest proste dzięki PHPUnit i ich niepodległym bibliotekom, a testy funkcji są zautomatyzowane, aby obniżyć rutynowe i uciążliwe operacje, które developer musiałby przeprowadzić.

 

Wsparcie techniczne to ogromna zaleta Symfony. Jest to framework przetestowany we wszystkich warunkach, a aktualizacje wychodzą przez cały czas. Ostatnia wersja była wspierana przez 3 lata i w tym okresie pozostawała kompatybilna ze wszystkimi nowszymi dodatkami. Ogromną pomocą jest również rozbudowana społeczność. To z pewnością było ogromnym czynnikiem, który zapewnił przetrwanie Symfony. Oficjalna strona deklaruje ponad 2000 aktywnych użytkowników, znacznie więcej niż w przypadku społeczności innych frameworków. To istotne, ponieważ ilekroć wystąpi problem w adaptacji produktu w określonych warunkach, istnieje duże prawdopodobieństwo, że ktoś już go rozwiązał. Otwarty dostęp do kodu wspiera poczucie odpowiedzialności za jakość działania frameworka i w praktyce oznacza, że specjaliści z całego świata dokładają starań, aby dopracować kod do perfekcji. Wspólna praca nad rozwiązywaniem problemów i tworzeniem nowych dodatków doskonale sprawdziła się przez lata.

 

Dokumentacja prowadzona wokół Symfony to kolejna rzecz, która powinna skłaniać w kierunku tego produktu. Jest doskonale oceniana na tle konkurencji ze względu na komunikatywność, jasność przekazu, dobrą strukturę, istnienie wielu przykładów oraz fakt, że jest aktualizowana od wersji do wersji. W instrukcji znajduje się więc wyjaśnienie każdego elementu oraz proces wykonania w całości.

 

Wady

Dla większej przejrzystości i ułatwienia wyboru, należy teraz opowiedzieć o wadach Symfony. W końcu żaden framework nie jest idealny. 

 

Osiągi

Osiągi nie są najmocniejszą stroną Symfony. To ważny czynnik, ponieważ wpływa na czas ładowania się aplikacji podczas dużego obciążenia sieciowego. Takie sytuacje mają miejsce najczęściej w przypadku mediów społecznościowych. Jednak framework ten wyrósł na giganta dzięki wzorowaniu się i wykorzystywaniu zalet swojej konkurencji. Jednym ze sposobów zwiększenia osiągów aplikacji jest migracja z PHP 5.6 do PHP7, co przyspiesza aplikację prawie dwukrotnie.

 

Więcej pracy

Symfony z reguły wymaga większego nakładu pracy. Co prawda opiera się na systemie kodu wielokrotnego użytku i projektowania wzorów, ale testowanie i dalsze wsparcie jest nieco uciążliwe i pracochłonne. Oznacza to pewne opóźnienie w pełnej realizacji projektu, w porównaniu do swoich konkurentów. Również nauka tego frameworka może przysporzyć pewne problemy. Wymaga on więcej wysiłku w zrozumieniu wszystkich zależności i cech, podczas gdy inne produkty są nieco bardziej intuicyjne jak np. Laravel i Yii. Z drugiej jednak strony Symfony szczyci się stabilnością i możliwością wprowadzania złożonych rozwiązań, dzięki czemu cieszy się popularnością wśród specjalistów na całym świecie.

 

Ogólnym założeniem frameworków jest dążenie do uproszczenia i przyspieszenia procesu pisania aplikacji. Symfony być może nie jest najprostszym rozwiązaniem na rynku, ale z pewnością jest najmocniejszym i najwytrzymalszym z dostępnych. Projekty, których umożliwia on realizację, są rozpoznawalne na skalę międzynarodową, co świadczy o jego zaprawieniu w boju oraz o zaufaniu, jakim można go obdarzyć.

 

Rozwiązanie to jest elastyczne i nadaje się do wielu różnych zastosowań. Dzięki pakietom i architekturze opartej na modułach Symfony nadaje się do projektów dużych i małych, skomplikowanych bardziej lub mniej. Być może nie jest najprostszy w obsłudze i nauce, ale po opanowaniu podstaw daje ogromne możliwości i z pewnością przebija zaletami swoją konkurencję. Dokumentacja i pomocna społeczność jest zawsze w zasięgu ręki.

 

Należy pamiętać, że framework to tylko narzędzie. Nawet najlepsze w rękach osoby nieprzygotowanej lub nieprzejawiającej chęci nauki nie da dobrych rezultatów. Sukces stworzenia jakiejkolwiek aplikacji koniec końców leży w rękach w developera.