Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Symfony]Adnotacje, YML, XML czy PHP - jaki format konfiguracji najlepszy?
Forum PHP.pl > Forum > PHP > Frameworki
pamil
Witam!

Od pewnego czasu zastanawiam się, jak najlepiej konfigurować nasze aplikacje. Osobiście, optuję za adnotacjami lub yamlem. Myślę, że najlepszym rozwiązaniem byłaby walidacja przy użyciu adnotacji, tak samo z generowaniem szablonów (@Template()), a konfiguracje routera przechowywałbym w Yamlu.

Jak wy konfigurujecie swoje projekty w Symfony2?
Szymciosek
Ja raczej korzystam z Yaml, chociaż nie wiem do końca jak w Yaml zrobić dokładnie to samo co w adnotacjach czyli:

@Route("/", name="nazwa_adresu")

może Ty wiesz ?

Do tego wiem, że Yaml jest najprostszy i najczęściej wystarczający
pamil
@Szymcioszek
Kod
nazwa_adresu:
  pattern: /
  defaults: { _controller: "Bundle:Controller:akcja" }
Szymciosek
To ja dobrze wiem, ale adnotacja pozwala na coś takiego: (Nie wiem, może yaml też)

Route("/", name="nazwa_adresu")

a później w Twig
<a href="{{ path('nazwa_adresu') }}">Link</a>
pamil
Z tego co wiem, wszystkie te konfiguracje są równoważne, sprowadzane są do cache w czystym PHP.
netrat
Z tego co widziałęm to w większości bundli i projektów ludzie używają yml(chyba w większości) lub xml. Ja robie tak samo. Wydaje mi się że koniec końców jest najbardziej przejrzyste.
ano
Po ponad roku intensywnego developingu w Symfony2 przyjęliśmy strategię, że:
- W "pełnej" aplikacji stosujemy do wszystkiego (Routing, Doctrine, Walidacja, DependencyInjection, Security) adnotacje.
Niebywale przyspiesza to proces tworzenia systemu. Szczególnie pięknie się tworzy modele, gdy w "jednym ciągu" piszesz kod - pola klasy, od razu określasz mapowania doctrine i reguły walidacji. Świetnie się to sprawdza bo nie trzeba żąglować 3 plikami (php'owy model, xml do walidacji, xml do mapowania, xml do...) tylko wszystko robisz w jednym. Masz natychmiastowy wgląd na wszystko.
Natomiast adnotacje od DependencyInjection powodują, że nie musisz pisać dlugaśnych xmlów. Tworzysz klasę php - serwis. Dodajesz admotacje @Service, @Inject... i masz już stworzony serwis - bez przydługiego xmla tongue.gif (umożliwia to JMSDIExtraBundle)
I to w efekcie jest ten słynny Rapid Development wink.gif)

- w bundleach, które są przewidziane na wydanie open source lub do użycia przy innych aplikacjach (wewnatrz firmy) stosujemy XML. Popularny, "sformalizowany" format, bardziej uniwersalny od adnotacji. Ma też swoje zalety - podpowiadanie składni w IDE ;P

PS.
O wydajność się nie martwcie bo wszystko jest pięknie cacheowane do zwyklego php.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.