Руководство по миграции 3.0

Эта страница обобщает изменения относительно CakePHP 2.x, что поможет вам безболезненно перевести ваши проекты на версию 3.0, а также руководство по изменениям, внесенным в ядро в сравнении с веткой CakePHP 2.x. Убедительно просим прочитать остальные сраницы в этом руководстве для ознакомления со всеми нововведениями и изменениями в API.

Системные требования

  • CakePHP 3.x поддерживает PHP версии 5.4.16 и выше.
  • CakePHP 3.x требует наличия расширения mbstring.
  • CakePHP 3.x требует наличия расширения intl.

Предупреждение

CakePHP 3.0 не будет работать если вышеприведенные условия не будут соблюдены.

Инструментарий обновления

В то время, как этот документ охватывает все радикальные изменения и улучшения сделанные в CakePHP 3.0, мы также создали консольное приложение для того, чтобы помочь вам совершить некоторые рутинные операции при обновлении. Вы можете получить инструментарий обновления с github.

Структура папок приложения

Структура папок приложения притерпела изменения и теперь соответствует стандарту PSR-4. Вы должны использовать в качестве примера проект каркаса приложения при обновлении вашего приложения.

CakePHP должен устанавливаться с помощью Composer

С того момента, как CakePHP больше не может устанавливаться через PEAR или в общую папку, данные опции больше не поддерживаются. Вместо этого вы должны использовать Composer для установки CakePHP.

Пространства имен

Все классы ядра CakePHP сейчас используют пространства имен и следуют спецификациям автозагрузки PSR-4. К примеру src/Cache/Cache.php доступен как Cake\Cache\Cache. Глобальные константы и методы-хелперы, такие как __() и debug() не используют пространства имен, чтобы ими было удобнее пользоваться.

Удаленные константы

Приведенные ниже устаревшие константы были удалены:

  • IMAGES
  • CSS
  • JS
  • IMAGES_URL
  • JS_URL
  • CSS_URL
  • DEFAULT_LANGUAGE

Конфигурация

Конфигурация в CakePHP 3.0 значительно отличается от предыдущих версий. Вы должны прочитать раздел Конфигурация, чтобы более детально изучить все изменения в версии 3.0.

Вы больше не можете использовать App::build() для указания дополнительных путей для используемых классов. Вместо этого вы должны прописывать их, используя автозагрузчик вашего приложения. Посмотрите раздел дополнительные пути для классов для получения более подробной информации.

Три новые конфигурационные переменные предоставляют настройки путей для файлов плагинов, видов и локалей. Вы можете добавить множество путей в переменные App.paths.templates, App.paths.plugins, App.paths.locales для настройки множества путей для шаблонов, плагинов и локалей соответственно.

Ключ конфигурации www_root был заменен на wwwRoot для лучшей согласованности. Пожалуйста внесите все необходимые правки в ваш файл app.php, а также везде, где используется вызов данного параметра Configure::read('App.wwwRoot').

Новая ORM

CakePHP 3.0 представляет вам новую ORM, которая была перестроена с нуля. Новая ORM значительно отличается от предшествующей и несовместима с ней. Обновление до новой ORM потребует обширных правок в любом из обновляемых приложений. Смотрите новую документацию по Доступу к Базе Данных и ORM для получения информации по использованию новой ORM.

Основы

  • LogError() был удален, так как не предоставлял никакой выгоды и либо использовался редко, либо не использовался вообще.
  • Следующие глобальные функции были удалены: config(), cache(), clearCache(), convertSlashes(), am(), fileExistsInPath(), sortByKey().

Отладка

  • Configure::write('debug', $bool) больше не поддерживает значения 0/1/2. Вместо этого теперь используется простое булево значение, чтобы просто включать/выключать режим отладки.

Настройки/конфигурация объекта

  • Объекты, используемые в CakePHP теперь поддерживают цепочки вызова методов экземпляра класса. К примеру код ранее использовавший свойство $object->settings теперь должен быть обновлен для использования метода $object->config().