Dzisiejszy dzień jest wielkim dniem. Półtoraroczny wysiłek 250 osób z wielu krajów pod kierownictwem znanego z „części pierwszej” tej sagi Fabiena Potenciera zakończył się wydaniem stabilnej wersji Symfony2 – 2.0.0. Długo czekałem na tą chwilę, kiedy będę mógł w końcu spróbować swoich sił w pracy z finalną wersją, dlatego jako wielki fan symfony 1.x tym bardziej cieszę się z dzisiejszego wydania. W niniejszym wpisie chciałbym krótko uczcić to święto wszystkich programistów PHP - nowa era frameworków tego języka została oficjalnie uznana za rozpoczętą!
Symfony2: Nowa era frameworków… została rozpoczęta!
Jedenaście godzin temu Fabien Potencier wykonał historyczny commit do repozytorium symfony. Odbił się on szerokim echem na Twitterze, Facebooku, Google+ i blogach zainteresowanych osób. Dlaczego został tak wyróżniony? Ponieważ została w nim symbolicznie zakończona praca nad wersją 2.0.0-DEV, a ona sama w końcu przyjęła stabilną formę 2.0.0:
28 lipca 2011 roku. Dzień, jak każdy inny, jednak coś się zmieniło. Zmienił się sposób, w jaki będziemy patrzeć na proces tworzenia stron i aplikacji internetowych.
Symfony2 forsuje bardzo ciekawy sposób podziału kodu na pakiety (bundle). W ten sposób będziemy mogli podzielić naszą aplikację na części – np. Blog, Forum, Galeria i korzystać z nich wymiennie w różnych projektach. Jest to główny czynnik, dla którego tyle osób jest zainteresowanych tym frameworkiem – tego typu logika pozwoli na jeszcze szybszą pracę nad projektami oraz zdecydowanie większą „reużywalność” [ach, jak ja nie lubię tego typu spolszczeń] kodu.
Poza tym, cały framework sam jest złożony z wspomnianych pakietów, dzięki czemu nie ma [a przynajmniej został zredukowany w bardzo istotny sposób] sztywnego podziału na „część frameworka (uwaga! nie ruszać!)” i „część programisty”. Dowolny z tych pakietów, np. Routing, Dependency Injection Container, itp. będą mogły bez problemu zostać użyte w naszych projektach poza frameworkiem, co powinno w bardzo pozytywny sposób wpłynąć na jakość kodu PHP w środowisku jego programistów.
Podsumowując – dostaliśmy w ręce „kawał dobrej roboty”, więc naprawdę wielką szkodą byłoby tego prezentu nie wykorzystać, nawet jeśli jesteście zwolennikami innych bibliotek / frameworków. Powiem więcej – wcześniej wiele frameworków toczyło boje o swoich zwolenników, oferując coraz to nowe funkcje lub ułatwiając tworzenie kolejnych elementów projektu. Teraz, jeśli ktokolwiek wpadnie na pomysł stworzenia czegokolwiek własnego, z miejsca zostanie zmiażdżony możliwościami Symfony2, który pozwoli na „złożenie z części” własnego rozwiązania, we własny sposób.
Tyle w kwestii moich zachwytów. Na blogu Symfony ukazał się obszerny artykuł podsumowujący wiele kwestii związanych z powstaniem frameworka – zapraszam do lektury. Poza tym, na terenie Francji, Holandii i Polski odbywały się dzisiaj imprezy, na których programiści świętowali powstanie nowego narzędzia pracy. W Polsce imprezę organizowała firma XSolve, z którą związany jest bloger Wojciech Sznapka – z jego „ćwierknięcia” można wywnioskować, że liczba osób zainteresowanym wspomnianym spotkaniem była całkiem spora:
Bardzo cieszy fakt, że aż tyle osób wspiera tego typu przedsięwzięcia. Przy okazji – ktoś z XSolve trafił na mój blog i był na tyle miły, że zostawił link do imprezowej galerii zdjęć na Flickrze – dziękuję!
Tyle ode mnie dzisiaj – idę otworzyć prezent od Fabiena i samemu przekonać się, jak wspaniałe narzędzie pracy od niego dostałem. Przy okazji – na blogu pojawia się nowa kategoria: Symfony2, a ten wpis będzie pierwszym, który zasili jej zasoby. ;] Tytuł dzisiejszego wpisu został zaczerpnięty z artykułu na blogu Juozasa Kaziukenasa – polecam zapoznanie się z nim w wolnej chwili na blogu WebSpecies.
Życzę miłego wieczoru i do zobaczenia jutro!
Warto przeczytać.
Trwa ładowanie…


Ha, też czekałem na stabilną wersję. Sporo dobrego słyszałem już o tym fw, najwyższy czas zabrać się za praktyczne poznanie działania bundli i całej reszty Symfony2.
CSS3 i Media Queries
Doszedłeś? ;)
Łohohoh, z tymi blogami, galeriami itd. to się trochę rozpędziłeś. Takie dzielenie aplikacji to już w Symfony 1 można było wykonać, o innych platformach nie wspominając. Tutaj bardziej chodzi o to, że ten sam mechanizm jest używany zarówno do dodawania nowych składowych aplikacji WWW (np. „Blog”), jak i bibliotek czy wreszcie samego frameworka, choć nie wiem czy przypadkiem Yii już czegoś podobnego nie miał.
Ponowne wykorzystanie też na dobrą sprawę zależy od tego, jakie zależności są między komponentami, choć na szczęście z Symfony 2 ma się 100 razy lepiej, niż z ZF-em. W ostatnich miesiącach sporo poprawiono w tej kwestii, bo jeszcze na początku roku połowa rzeczy była tak beznadziejnie poprzypisywana do komponentów, że o wielokrotnym wykorzystaniu przeważnie mowy nie było :).
@Kamil: Ja już wcześniej ogarnąłem całą strukturę Symfony2 i to, w jaki sposób się z nim pracuje. Po prostu nie chciałem się wdrażać w jakieś projekty związane z tym frameworkiem przed wersją stabilną. Życzę powodzenia w pracy i nauce. ;] Poza tym, czekamy wszyscy na nowe wpisy na Twoim blogu, bo coś sucho ostatnio? ;]
Symfony2: Nowa era frameworków… została rozpoczęta!
@Tomasz Żełudziewicz: Długo się zastanawiałem, czy opublikować to, co napisałeś, ale niech Ci będzie. Nie życzę sobie jednak takich komentarzy w przyszłości – polecą z miejsca do spamu.
Symfony2: Nowa era frameworków… została rozpoczęta!
@Zyx: W symfony 1.x takie rzeczy jak blog można było też umieścić w modułach zamiast aplikacji, co nie było przenośne, a przynajmniej nie w sposób [Ctrl] + [C], [Ctrl] + [V] lub podobny. Zdecydowana większość osób idąc za tutorialami tworzyła dwie aplikacje – frontend i backend, nie myśląc o dekompozycji projektu na więcej składowych. Faktycznie, może przesadziłem z tym dosadnym „nie”, ale przyznasz, że trochę prawdy w tym jest. Symfony2 po prostu z miejsca forsuje przenośne budowanie poszczególnych aplikacji.
Co do ponownego wykorzystania – Fabien napisał, że każdy bundle [bundel? ;]] ma oddzielne repozytorium i został przetestowany także w warunkach „samodzielnych”. Ja niespecjalnie zamierzam testować je poza środowiskiem Symfony2, także wierzę mu na słowo, aczkolwiek komponent Yaml już wykorzystywałem we własnych rozwiązaniach i tu się słowa Fabiena sprawdzają.
Symfony2: Nowa era frameworków… została rozpoczęta!
Mnie też się symfony 2 podoba, zwłaszcza niektóre komponenty które sobie pożyczyłem ;P jest to chyba najbardziej zaawansowany framework jakiego znam i jaki powstał (chyba). Nie mniej, jest jak armata do małych projektów, robić głupią galerie na większości fw jakie znam, jest sztuką dla sztuki. Przynajmniej według mnie. Dlatego z paczek które są dostępne w symfony, poskładałem coś swojego, które ma dość podobną funkcjonalność, ale waży znacznie mniej, generuje się znacznie krócej i używa tylko pdo. Gdzie również można wielokrotnie wykorzystywać ten sam moduł, czy tą samą akcje i nie ma jakiegoś podziału na front/backend.
Nie mniej, symfony jest moim ulubionym frameworkiem, zend mnie nie cieszy swoją powolnością, a kohany nie rozumiem. Nie rozumiem w sensie po co tworzyć osobną klasę która dziedziczy po klasie Kohana_ tylko po to żeby zmienić nazwę? Nie można tego od razu normalnie zapisać? Bezsensu, no ale co kto lubi :)
Właśnie o to chodzi – dostajesz masę dobrych narzędzi, z których możesz korzystać pod jedną nazwą (Symfony2) albo poskładać sobie własne rozwiązanie. Czy jest to armata dla małych projektów? Prawdopodobnie tak, ale zauważ, że to, w jaki sposób zbudujesz swojego „bundla” zależy tylko od Ciebie, sam framework nie ma zbyt wielkiego narzutu. Poza tym, jest zawsze Silex – mikroframework oparty na Sf2, dzięki czemu możesz nadal korzystać ze wszystkich dobrodziejstw, nie wrzucając wszystkiego do projektu. ;]
Symfony2: Nowa era frameworków… została rozpoczęta!
Kilka fotek w w/w imprezki:
http://www.flickr.com/photos/drymek/sets/72157627178838993/with/5985693462/
DSC_0107
Dzięki za link! Już wstawiam w treść wpisu. ;]
Symfony2: Nowa era frameworków… została rozpoczęta!
I pewnie znowu pojawi się jakaś książka o Symfony. A o Zendzie cicho nawet w Helion (wiem, że jestem nudny ;). Ale z Symfony2 na pewno w przyszłości się zapoznam. Bo teraz leżę nad manualem ZF.
Blog po nowemu
Nie wiem, szczerze mówiąc zdecydowana większość mojej wiedzy pochodzi właśnie z manuali i własnej dociekliwości, dlatego nie narzekam na brak książek o tym, czy innym frameworku. ;] Nie jesteś nudny, prawdopodobnie nawet masz rację, że Symfony jest faworyzowane względem ZF na polu publikacji – dla mnie, jak już powiedziałem, nie ma to znaczenia.
Symfony2: Nowa era frameworków… została rozpoczęta!
@filip
> Nie rozumiem w sensie po co tworzyć osobną klasę która dziedziczy po klasie
> Kohana_ tylko po to żeby zmienić nazwę? Nie można tego od razu normalnie
> zapisać? Bezsensu, no ale co kto lubi :)
Nie można by. Zajrzyj proszę na guide kohany http://kohanaframework.org/3.0/guide/kohana/files
Dzięki takiemu rozwiązaniu możesz wpłynąć na zachowanie frameworka w dowolnym miejscu. To jest jak klasa eventów (która istaniała w Kohanie wcześniej) tylko lepsze. W eventach możesz się tylko podczepić pod konkretne zdarzenie, a w kohanie, możesz podczepić się pod dowolną metodę dowolnej klasy. Tak upraszając na maksa.
Pingback: Symfony2: Importowanie danych mapowania encji z filtrowaniem wyrażeniami regularnymi. « Tomasz Kowalczyk
Pingback: symfony: Kropka w routingu aplikacji. « Tomasz Kowalczyk