После четырех версий релиз-кандидатов вышла стабильная версия 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.
Автор: Сергей Степанов
Поделиться @
Пока нет коментариев. Будьте первым!