Рождественский пирог: долгожданный релиз CakePHP 1.2

К Рождеству разработчики CakePHP выпустили долгожданный релиз фреймворка версии 1.2. Разработка этой версии длилась почти 2 года и, надо сказать, пирог получился отменный! Что больше всего нравится лично мне:

  • Behaviors — расширение функционала моделей. PHP досих пор страдает отсутствием множественного наследования и behaviors в CakePHP очень технично эту проблему решают.
  • Тесты — CakePHP интегрируется с пакетом SimpleTest и позволяет создавать тесты для всех методов контроллеров и моделей. Это очень важно при разработке
  • Консольная утилита, позволяющая создавать типичные модели, контроллеры, каркас приложения и т.д. Очень удобная, на мой взгляд.
  • Законченная и понятная концепция плагинов. Части приложения, более-менее самостоятельные, можно изготавливать в виде плагинов и использовать в разных проектах.

Это, конечно, не полный список «вкусностей», а только то, что сразу вспомнилось. В целом, по сравнению с версией 1.1 фреймворк сильно изменился в лучшую сторону. Стал более понятным и удобным.

Авторы не удержались от добавления новых возможностей и, по сравнению с недавно вышедшим RC4, немного расширили функционал валидаторов у моделей. Теперь данные для поля, содержащего URL, можно проверять в режиме ‘strict’: тогда ошибка проверки будет возникать, если не указан протокол. Т.е. ‘http://example.com’ — правильно, а ‘example.com’ — ошибочно. Чтобы воспользоваться этой возможностью надо указать примерно такое правило проверки:

Т.е. поле ‘website‘ должно содержать правильный URL, а второй параметр (true) как раз и указывает на обязательность наличия протокола (http://, ftp:// и т.п.)

Увы, документацию на версию 1.2, нельзя назвать всеобъемлющей. Это скорее обзор для начинающих, то, что по-английски называют User’s Guide. Документация для разработчика, Developer’s Guide, доступна только на языке PHP.

Очень неудобно отсутствие исключений (exceptions). Это, видимо, плата за совместимость с PHP4. Работу с исключениями можно дописать самостоятельно, но хочется, чтоб поддержка их была и в ядре. Будем надеятся, что в 2.0 они появятся, потому как поддержки PHP4 в следующей версии уже не будет.

34fb6db9-e173-400b-9ad4-ac8c0fa45e49

Автор

Сергей Родовниченко

Родился, учился, работал и все такое. Занимаюсь поддержкой сайтов на Shop-Script, Joomla, Wordpress, Prestashop. А также на самописных движках на базе CakePHP.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *