W prawdzie nie przedstawia on ze sobą tak wiele gorących zmian jak wersja 1.2 ale moim zdaniem nawet jeśli żadna z nowych funkcji nie była przez Ciebie długo oczekiwana, to jednak zamknięcie tego etapu umożliwia skupienie się teamu cake’a na wersji 2.0 (która przez sam fakt porzucenia wsparcia dla php 4 jest warta uwagi).
Z ciekawszych nowości w 1-3
- JsHelper nie jest już sztywno związany z prototype/scriptaculous – można teraz przy pomocy adapterów używać innych frameworków JS
- Błędy walidacji powinny teraz wywoływać błąd, dzięki czemu znalezienie przyczyny dlaczego walidacja nie działa powinno być łatwiejsze
- Mocniejsze wsparcie dla pluginów (schema, bake, pliki konfiguracyjne pluginów)
- nowy katalog ‘libs’, który ma na celu odróżnienie ‘vendors’, czyli kodu pochodzącego od firm trzecich od kodu tworzonego przez Ciebie (innymi słowy, ‘libs’ to taki ‘vendors’, ale stworzony przez Ciebie)
- ustawienie domyślnych wartości dla metody “input” przy tworzeniu nowego formularza. To jedna z ciekawszych rzeczy. Dawniej metoda ta domyślnie dodawała “label” na podstawie nazwy pola i otaczała go z inputem w div’ie. Gdy w danym formularzu było chciałeś temu zapobiec, każdemu wywołaniu metody “input” musiałeś dodał opcje (array(“label”=>”false”), teraz możesz zrobić to tylko raz na formularz:
echo $this->Form->create('User', array( 'inputDefaults' => array( 'label' => false, 'div' => false ) ));
Gratuluję zespołowi cakePhp kolejnego sukcesu i trzymam kciuki za utrzymanie tempa rozwoju i wszystkim Wam przypominam, że można wesprzeć ten projekt zaopatrując się jednocześnie w gadżet z logo cake’a.
Ah! Dodam jeszcze, że wg twórców cakePHP migracja z 1.2 na 1.3 w większości przypadków powinna obejść się bezboleśnie. Dla pozostałych został przygotowany poradnik: http://book.cakephp.org/view/1561/Migrating-from-CakePHP-1-2-to-1-3
Zachęcam wszystkich do tego kroku choćby dlatego, żeby kolejne migracje też przebiegały sprawnie.
fajna sprawa, mam gleboka nadzieje, ze w wersji 2.0 poprawia zachowanie Containable w przypadku pobierania danych z kilku odleglych tabel – obecnie Containable dziala w ten sposob, ze to co mozna obskoczyc jednym zapytaniem zabiera np. 50 zapytan :)