После четырех версий релиз-кандидатов вышла стабильная версия CakePHP 1.3. По сравнению с версией 1.2 в новой 1.3 реализовано много новых функций еще более облегчающих разработку приложений.
Ниже я попытаюсь привести основные изменения в новой версии, перевод с официального сайта.
Различные методы requireXX, такие как requireGet и requirePost теперь принимают в качестве параметра строковый массив.
$this->Security->requirePost(array( 'edit' , 'update' ));
Теперь настройки для всех компонентов могут быть в массиве $components. Многие параметры поведения компонентов можно объявить при объявление самого компонента.
var $components = array(
'Cookie' => array(
'name' => 'MyCookie'
),
'Auth' => array(
'userModel' => 'MyUser',
'loginAction' => array('controller' => 'users', 'action' => 'login')
)
);
Это должно помочь очистить от хаоса метод beforeFilter() в контроллерах.
$this->Email->htmlMessage и $this->Email->textMessage. Эти свойства будут содержать сообщение которое будет отправлено получателю.EmailComponent, были сделаны защищенными, для их расширения.EmailComponent::$to теперь может быть массивом. Это позволяет упростить отправку сообщения несколькими получателями, а также согласованности с другими свойствами.EmailComponent::$messageId может быть добавлен, это позволяет управлять значением Message-ID в заголовке электронного сообщения.Теперь помощники могут использоваться как $this->Helper->func() в дополнение к $helper->func().
Для постраничной разбивки можно использовать дополнительные css классы для оформления, а так же настроить по умолчанию направление сортировки. PaginatorHelper::next() и PaginatorHelper::prev() теперь генерируются по умолчанию при помощи тегов span, вместо div-ов.
Был добавлен Helper::assetTimestamp(). Это позволяет добавить метку времени к любому объекту в WWW_ROOT. Это работает как Configure::read('Asset.timestamp'); но теперь эта функциональность доступна для всех помощников.
$path = 'css/cake.generic.css' $stamped = $this->Html->assetTimestamp($path); //$stamped contains 'css/cake.generic.css?5632934892'
Добавление временной метки последней модификации файла. Так как этот метод определен в Helper то от доступен во всех подклассах.
highlight() теперь принимает массив из строк для выделения.
Был добавлен новый метод addFormat(). Он позволяет задавать формат для вывода валюты.
$this->Number->addFormat('NOK', array('before' => 'Kr. '));
$formatted = $this->Number->currency(1000, 'NOK');
Работа кэшей в 1.3 реализована более гибко. Теперь вы можете использовать собственные средства кеширования в app/libs, а если это дополнение то $plugin/libs. App/plugin может перекрывать средства ядра. Адаптер кеша может находится в директории кеша. Если у вас было средство кеширования с именем MyCustomCacheEngine он будет размещен в app/libs/cache/my_custom_cache.php или app/libs. Или в $plugin/libs/cache/my_custom_cache.php как часть дополнения. При настройка кешей из дополнений необходимо использовать точку для указания названия расширения.
Cache::config('custom', array(
'engine' => 'CachePack.MyCustomCacheEngine',
...
));
Cache имеет несколько новых методов, которые служат для упрощения диагностики и проверки краха кэшей.
Cache::configured() возвращает массив для настройки кэша.Cache::drop($config) сбрасывает настройки кэширования. Когда отключен кэш, то он больше не читается и не записывается.Cache::increment() выполняет автономное прибавление к числовому значению. Это не реализовано для FileEngine.Cache::decrement() выполняет автономное убавление от числового значения. Это не реализовано для FileEngine.Это лишь небольшая часть улучшений которые были сделаны в новой версии CakePHP. Как вы можете заметить, то для того что бы перейти на новую версию, то возможно придется изменять ваше приложение. В ближайшее время я постараюсь дать вам перевод документации о переходе с версии 1.2 на 1.3.
Автор: Сергей Степанов
Поделиться @
Пока нет коментариев. Будьте первым!