Saturday, August 30, 2008

Komentarz do MVC - czyli frameworki PHP

Dziś przeczytałem świetny wpis wyjaśniający o co chodzi w MVC. Osobiście chciałem dodać do niego mały komentarz, który mam nadzieję pojawi się również na blogu autora.

Ja dzisiaj - nie wyobrażam sobie tworzenia stron internetowych inaczej. Osobiście jednak - nie pisałem nigdy własnego Frameworka - raz tylko pomagałem koledze, gdyż uważam, że pisanie własnego MVC to wynajdywanie koła na nowo.

O Kohana nigdy nie słyszałem. Osobiście zaczynałem od CodeIgniter i jest to prosty framework. Jego zaletą, która jest ważna dla początkujących, jest fakt iż posiada dobrą dokumentację i można naprawdę szybko połapać się co gdzie jest.

Na kolejny ogień poszedł CakePHP. Tam dowiedziałem się co to jest scaffolding. Z cech, które przemawiają za CakePHP moim zdaniem jest na pewno obsługa drzew i ACL, których nie spotkałem w żadnym innym frameworku. Szczególnie widać to w wersji 1.2, w której pojawiło się wsparcie dla internacjonalizacji. Szalenie również podoba mi się mechanizm "elements", który moim zdaniem bardzo ułatwia tworzenie szablonów, z różnych powtarzalnych komponentów, pod, które możemy podkładać różne dane, co szalenie skraca pracę w tworzeniu szablonów. CakePHP posiada w najnowszej wersji mnóstwo innych bibliotek i wygląda mi na to, że obecnie jest to najlepszy framework.

Obecnie tworzę projekt z użycie Symfony. CakePHP w wersji 1.2 na pewno chciał doścignąć Symfony. Moim skromnym zdaniem - przypadkiem go prześcignął. Co do symfony. Posiada mnóstwo pluginów i dużą społeczność. Używa Propel, modele są więc generowane i dostępne ad-hoc - bez pisania jakiegokolwiek kodu. Dzięki użycia Propel modele generowane są w bardzo inteligentny sposób. Na koniec - bez pisania nawet połowy linijki kodu - dostajemy gotowe klasy w PHP, które obsługują między innymi CRUD oraz posiadają metody automatycznie pobierające dane z innych tabel używając złączeń. Dodatkowo są one szalenie elastyczne. Kolejna rzecz to scaffolding,który jest naprawdę piekielnie użyteczny i pozwala w 1 minutę(naprawdę właśnie w tyle) stworzyć funkcjonalny panel administratora do prostej aplikacji. W moim przypadku problemem okazało się korzystanie z dokumentacji, która z racji niekompletności,rozstrzelenia oraz braku opisania każdego modułu od A do Z (istnieje tylko kompletny opis API) jest nieużyteczna. Z tej przyczyn prawdopodobnie do czasu aż to się nie zmieni - będę korzystał z innych frameworków. Na obronę powiem tylko, że dokumentacji, która istnieje obecnie jest dużo, niemożna narzekać na jej brak czy na nie opisanie jakiś komponentów.Projekt jest jednak tak kolosalny, że stworzenie do niego dobrej dokumentacji to nie lada wyzwanie. Na razie, w moim mniemaniu jeszcze nie udało się temu wyzwaniu sprostać.

Innym ciekawym moim zdaniem framerowkiem jest Akelos, który jak możemy wyczytać na stronie internetowej, jest portem Ruby On Rails napisanym w PHP.Tyle z moich doświadczeń. Może okażą się dla kogoś pomocne w dalszej przygodzie z MVC. Chciałem przy okazji polecić swój artykuł, w którym również swojego czasu opisałem MVC na blogu Matriksa.

No comments: