Kilka dni temu, zespół symfony poinformował o utworzeniu w SVN-nie brancha 1.3 – alfa 2. Oznacza to że już niedługo będziemy mogli skorzystać ze stabilnej wersji 1.3. Prezentujemy co pojawiło się w 2 wydaniach symfony 1.3 – wersji Alfa 1 i Alfa 2.
W wielkim skrócie, co pojawiło się w Alfa 1:
Jeszcze lepsza wydajności
Priorytet w wydaniu 1.3 było polepszenie wydajności. Z głównych osiągnięć, przepisano sporą część systemu rutingu, dzięki czemu obsługa przychodzących zapytań, obsługiwana jest znacznie szybciej. Oprócz tego pojawiło się nowe zadanie:
project:optimize
, który tworzy zrzut struktury projektu do pliku i przez to znacznie redukując ilość operacji w systemie plików.
Doctrine w standardzie
Zgodnie z zapowiedziami, Doctrine stał się domyślnym systemem ORM. Nie oznacza to że przestaje wspierać Propela (o nie!). Gorąco zalecamy tworzenie nowych projektów z użyciem Doctrine-a.
Nowy Mailer
Tak jak już pisaliśmy, Fabien stał się Project Managerem projektu Swift Mailer, który w 1.3 zostaje wbudowany do symfony. Dzięki temu możesz wykorzystywać elastyczny system mailingowy w projektach symfony, bez konieczności dostosowywania kodu.
Jeszcze lepsze formularze
Sporo usprawnień pojawiło się we frameworku do formsów, dzięki którym jeszcze łatwiej można wykorzystywać jego funkcjonalność. Wszystkie klasy do formularzy generowane przez system ORM, teraz wykorzystają mechaniz powiadomień (notify events) i rozszerzają podstawowe klasy w Twoim projekcie, dzięki czemu łatwiej je nadpisywać w projekcie lub w pluginach. Został wprowadzony również dynamiczny interfejs, umożliwiający tworzenie formularzy “w locie”.
Web debug panel
Pojawiły się dwa panele do debugowania. Panel “widoku” (”view”) i maili (”mailer”). Panel widoku wyświetla listę szablonów i partiali, które są wykorzystywane na obecnej stronie, razem ze wszystkimi parametrami które są tam użyte. Każdy parametr jest opisany, i jeżeli jest obiektem, zawiera link otwierający plik z klasą w Twoim wybranym edytorze tekstu. Głównym celem było udostępnienie osobom nie programującym w symfony narzędzia, do pracy z układami stron, bez konieczności wdrażania się w frameworka.
Usprawnienie pracy
Naniesione zostało sporo usprawnień, w celu podniesienie efektywności pracy programisty symfony. Nowy autoloader został dodany do środowiska developerskiego, który będzie śledził jakie zmiany zostały wprowadzone, co rozwiąże Twój problem z uruchamianiem
symfony cc
po każdym dodaniu nowej klasy. Usprawniono testy jednostkowe i funkcjonalne, aby jeszcze wydajniej je pisać i uruchamiać oraz żeby można było obsługiwać testy z pluginów.
A co doszło w Alfa 2:
Propel 1.4
Przesiadka do wersji Propel 1.4. Ostatnie wersja Propela zawiera bardzo sporo usprawnień (czytaj więcej EN)
Migracja Doctrine
Dodano również kilka nowych usprawnień do integracji symfony z migracją bazy danych w Doctrine. Nowy taskt:
doctrine:generate-migrations-diff
generuje klasy migracji poprzez porównania starej i nowej schemy. Dodatkowo dzięki parametrom –up i –down dodanych do doctrine:migration możesz łatwo przejść przez migrację, za jednym zamachem.
Lepszy ->click()
Możesz łatwo i bez problemu tworzyć bardziej elastyczne testy funkcjonalne. W testach przeglądania dzięki metodzie ->click() możesz korzystać z każdego parametru CSS. Pozwala to łatwo zlokalizować każdy przycisk lub link w kodzie.
Keszuj więcej
Poprzednie wersje symfony nie pozwalały na cache szablonów, które otwierane były z wartością query w adresie URL. Zmieniliśmy to w tej wersji, umożliwiając zapamiętywanie wszystkiego, niezależnie od zapytania GET.
Jest to tylko kilka z nowości, które pojawiło się w symfony 1.3. Jest ich znacznie więcej, dlatego zachęcamy do pobrania i przetestowania
.
A ja jestem ciekawy jak wypadnie nowa wersja propela z Doctrine. I czy rzeczywiście aż tak bardzo symfony w 1.3 przyśpieszyło.
Myślę że tak …ale przyznam że nie testowałem jeszcze. Choć przyznam, że obecna wydajność Symfony w zupełności mi wystarcza.
No a co dopiero będzie jak wyjdzie symfony 2.0, gdzie zapowiadają że będzie o wiele bardziej szybsza od 1.2 tylko czekać aż pokaże się 1.2
Wydaje mi się, że stwierdzenie “jeszcze łatwiejsze korzystanie z formularzy” to lekkie przegięcie akurat Symfony jest frameworkem gdzie to jest zdecydowanie najbardziej skomplikowane i czasochłonne co wielokrotnie wytykała Fabienowi społeczność. Myślę, że o intyicyjności prostocie formsów z 1.0 możemy tylko pomarzyć
Największy problem, to brak porządnej dokumentacji do systemu formularzy. Dokumentacji, która poza przykładami wyjaśniła by wewnętrzne mechanizmy działania formularzy (pola, widgety, validatory, zagnieżdzanie formularzy etc). Do prostych formularzy wiedza ta jest niepotrzebna, ale przy budowaniu bardziej złożonych trzeba często zaglądać do kodu – na szczęście jest on ładnie napisany i można się z niego dużo dowiedzieć.