5 przydatnych bundli do Symfony2

Tworząc aplikacje webowe za pomocą frameworka Symfony2 często napotykamy na problemy, które są typowe dla programowania webowego. Z tego powodu możemy przypuszczać, że ktoś inny już te problemy napotkał i je rozwiązał. Symfony2 oferuje system bundli (pluginów), które możemy wykorzystać w naszym projekcie w celu wzbogacenia go o określone funkcje. Na szczęście społeczność Symfony publikuje dużo bundli gotowych do użycia.

Oto pięć popularnych i przydatnych bundli:

FOSUserBundle

Dodaje obsługę zapisywania użytkowników do bazy danych za pomocą Doctrine ORM, ODM i Propela. W związku z tym obsługiwane bazy danych to m.in.: MySQL, PostgreSQL, MongoDB i CouchDB. Dodatkowo ten bundle dostarcza funkcje takie jak: rejestracja użytkowników (z opcjonalnym potwierdzaniem przez e-mail) i przypominanie hasła.

SonataAdminBundle

Jedną z funkcji, które były dostępne w symfony 1.x, a nie zostały uwzględnione w Symfony2, był generator paneli administracyjnych. Na szczęście bundle dostarczane domyślnie przez Symfony2 nie wyróżniają się niczym specjalnym w stosunku do bundli dostarczanych przez użytkowników i nic nie stało na przeszkodzie żeby społeczność uzupełniła ten brak.

Powstało co najmniej kilka generatorów, ale najpopularniejszym z nich jest SonataAdminBundle. Pozwala on bez większego wysiłku wygenerować panel administracyjny dla naszej klasy modelu, który będzie obsługiwał takie operacje jak listowanie, dodawanie, usuwanie i edycja rekordów. Oczywiście panel ma też bardziej zaawansowane funkcje.

Przykładowy panel można zobaczyć pod tym adresem: Sonata Sandbox.

FOSRestBundle

Dostarcza narzędzia ułatwiające tworzenie aplikacji w architekturze REST. Dzięki temu możemy zbudować aplikację, która udostępnia API zgodne z tą architekturą.

W skrócie ten bundle ułatwia nam tworzenie poprawnych URL dla naszych zasobów, dodaje obsługę formatów XML i JSON, rozpoznaje format żądania HTTP i pomaga tworzyć kontrolery z odpowiednimi akcjami.

StofDoctrineExtensionsBundle

Istotną różnicą pomiędzy Doctrine w wersji 1.x a 2.x jest brak obsługi funkcji nazwanej „behaviors”. Pozwalała nam ona na „stemplowanie czasem”, wersjonowanie, tłumaczenie i inne operacje na rekordach. W Doctrine 2.x behaviors zostały usunięte, ale została zachowana możliwość tworzenia rozszerzeń. Szybko powstały odpowiednie rozszerzenia do nowej wersji Doctrine, a ten bundle integruje je z Symfony2.

KnpMenuBundle

To jest z wielu znakomitych bundli utrzymywanych przez firmę Knplabs. Integruje on z Symfony2 bibliotekę KnpMenu służącą do tworzenia dynamicznych menu w naszej aplikacji.

Dzięki temu możemy łatwo wzbogacić naszą aplikację o menu.