Может войдёшь?
Черновики Написать статью Профиль

Руководство по обновлению

перевод документация 4.x

  1. 1. Обновление на 4.2 с 4.1
    1. 1.1. PHP 5.4+
    2. 1.2. Настройки шифрования
    3. 1.3. Модели безопасного удаления теперь используют типажи
    4. 1.4. Переименованы классы View и Pagination
    5. 1.5. Дополнительный параметр в Pagination Presenter
    6. 1.6. Шифрование очереди Iron.Io
  2. 2. Обновление до 4.1.29 с 4.1.x
  3. 3. Обновление до 4.1.26 с 4.1.25
    1. 3.1. Обновление Path
    2. 3.2. Создатели пакетов
  4. 4. Обновление до 4.1 с 4.0
    1. 4.1. Обновление зависимостей Composer
    2. 4.2. Замена файлов
    3. 4.3. Добавление файлов конфигурации и параметров
    4. 4.4. Обновление контроллера
    5. 4.5. Обновление сброса паролей
    6. 4.6. Обновление обнаружения среды
    7. 4.7. Более простые лог-файлы
    8. 4.8. Удаление завершающего слеша для переадресации
    9. 4.9. Доступ к текущему маршруту
    10. 4.10. Обновление Composer
    11. 4.11. Слушатели событий по шаблону
Этот перевод актуален для англоязычной документации на (ветка 4.2). Опечатка? Выдели и нажми Ctrl+Enter.

Обновление на 4.2 с 4.1

PHP 5.4+

Laravel 4.2 требует PHP 5.4.0 или выше.

Настройки шифрования

Добавьте новый параметр cipher в свой файл конфигурации app/config/app.php. Значение этого параметра должно быть MCRYPT_RIJNDAEL_256.

confcipher => MCRYPT_RIJNDAEL_256

Этот параметр используется для управления шифром по умолчанию для средств шифрования Laravel.

В Laravel 4.2 шифр по умолчанию — это MCRYPT_RIJNDAEL_128 (AES). Он считается самым безопасным шифром. Необходимо изменение значения шифра назад на MCRYPT_RIJNDAEL_256, чтобы расшифровывать cookies/values, которые были зашифрованы в Laravel 4.1.

Модели безопасного удаления теперь используют типажи

Если вы используете модели безопасного удаления, знайте, что теперь параметр softDeletes удалён. Теперь надо использовать SoftDeletingTrait:

PHP
use Illuminate\Database\Eloquent\SoftDeletingTrait;

class 
User extends Eloquent {
  use 
SoftDeletingTrait;
}

Также надо вручную добавить поле deleted_at в параметр dates:

PHP
class User extends Eloquent {
  use 
SoftDeletingTrait;

  protected 
$dates = ['deleted_at'];
}

API для операций безопасного удаления остался прежним.

SoftDeletingTrait не может быть применён на базовую модель. Он должен быть в классе реальной модели.

Переименованы классы View и Pagination

Если вы непосредственно ссылаетесь на класс Illuminate\View\Environment или класс Illuminate\Pagination\Environment, обновите свой код на Illuminate\View\Factory и Illuminate\Pagination\Factory вместо них. Новое название лучше отражает их функции.

Дополнительный параметр в Pagination Presenter

Если вы наследуете класс Illuminate\Pagination\Presenter, то теперь в абстрактный метод PHPgetPageLinkWrapper добавился параметр rel:

PHP
abstract public function getPageLinkWrapper($url$page$rel null);

Шифрование очереди Iron.Io

Если вы используете драйвер очереди Iron.io, вам нужно будет добавить новый параметр encrypt в конфигурационный файл очереди:

conf'encrypt' => true

Обновление до 4.1.29 с 4.1.x

В Laravel 4.1.29 улучшено квотирование столбцов для всех драйверов баз данных. Это защищает ваше приложение от некоторых уязвимостей массового назначения, когда в модели не используется параметр fillable. Если вы используете параметр fillable для защиты от массового назначения, ваше приложение не является уязвимым. Однако, если вы используете guarded и передаёте пользовательские массивы в функции типа «update» или «save», вы должны скорей обновиться до 4.1.29, так как ваше приложение находится под угрозой массового назначения.

Чтобы обновить Laravel до 4.1.29, просто запустите shcomposer update. В этом релизе нет критических изменений.

Обновление до 4.1.26 с 4.1.25

В Laravel 4.1.26 входят улучшения в области безопасности для cookies «запомнить меня». До этого обновления, если злоумышленник перехватывал cookie «запомнить меня», то этот cookie оставался действующим в течение длительного периода времени, даже после того как настоящий владелец аккаунта изменил свой пароль, вышел из системы и т.д.

Это изменение требует добавления нового столбца remember_token в таблицу базы данных users (или её аналог). После этого изменения новый токен будет присваиваться пользователю каждый раз, когда он подключается к вашему приложению. Токен также будет обновлён, когда пользователь выйдет из приложения. Последствия этого изменения: если cookie «запомнить меня» перехвачен, простой выход из приложения обновит этот cookie.

Обновление Path

Во-первых, добавьте в таблицу users новый, занулённый столбец remember_token типа VARCHAR(100), TEXT, или эквивалентного типа.

Во-вторых, если вы используете драйвер аутентификации Eloquent, добавьте в класс User следующие три метода:

PHP
public function getRememberToken()
{
  return 
$this->remember_token;
}

public function 
setRememberToken($value)
{
  
$this->remember_token $value;
}

public function 
getRememberTokenName()
{
  return 
'remember_token';
}

Все существующие сессии «запомнить меня» станут недействительны после этого изменения, так что все пользователи будут вынуждены повторно зайти в ваше приложение.

Создатели пакетов

Два новых метода были добавлены в интерфейс Illuminate\Auth\UserProviderInterface. Примеры реализации можно найти в драйверах по умолчанию:

PHP
public function retrieveByToken($identifier$token);

public function 
updateRememberToken(UserInterface $user$token);

Illuminate\Auth\UserInterface также получил три новых метода, описанные выше в разделе «Обновление Path».

Обновление до 4.1 с 4.0

Обновление зависимостей Composer

Чтобы обновить своё приложение Laravel до 4.1, измените версию вашего laravel/framework на 4.1.* в файле composer.json.

Замена файлов

Замените свой файл public/index.php на эту свежую копию из репозитория.

Замените свой файл artisan на эту свежую копию из репозитория.

Добавление файлов конфигурации и параметров

Обновите свои массивы aliases и providers в своём конфигурационном файле app/config/app.php. Обновлённые значения для этих массивов можно найти (https://github.com/laravel/laravel/blob/master/app/config/app.php в этом файле)). Не забудьте заново добавить в массивы свои пользовательские и пакетные поставщики услуг и алиасы.

Добавьте новый файл app/config/remote.php (https://github.com/laravel/laravel/blob/master/app/config/remote.php из репозитория)).

Добавьте новый параметр конфигурации expire_on_close в свой файл app/config/session.php. По умолчанию значение должно быть установлено в false.

Добавьте новую секцию failed в свой файл app/config/queue.php. По умолчанию значения секции должны быть следующими:

conf  'failed' => array(
		'database' => 'mysql', 'table' => 'failed_jobs',
	),

(Необязательно) Обновите параметр pagination в файле app/config/view.php на pagination::slider-3.

Обновление контроллера

Если app/controllers/BaseController.php содержит use вверху, измените use Illuminate\Routing\Controllers\Controller; на use Illuminate\Routing\Controller;

Обновление сброса паролей

Сброс паролей был перестроен для большей гибкости. Вы можете изучить новый контроллер, выполнив Artisan-команду shphp artisan auth:reminders-controller (запускайте только после выполнения других изменений ниже). Вы можете также просмотреть обновленную документацию и обновить своё приложение в соответствии с ней.

Обновите свой языковой файл app/lang/en/reminders.php на этот

Обновление обнаружения среды

Из соображений безопасности URL-домены больше не используются для обнаружения среды приложения. Эти значения легко подменить, а это позволит злоумышленникам изменить среду для запроса. Используйте для обнаружения среды имена хостов (команда shhostname на Mac, Linux и Windows).

Более простые лог-файлы

Laravel теперь генерирует единственный файл журнала: app/storage/logs/laravel.log. Однако вы по-прежнему можете настроить ведение журналов с помощью файла app/start/global.php.

Удаление завершающего слеша для переадресации

В вашем файле bootstrap/start.php удалите вызов PHP$app->redirectIfTrailingSlash(). Этот метод больше не нужен, так как это функция теперь реализована в файле .htaccess, включенном в фреймворк.

Затем замените файл .htaccess вашего Apache на этот новый файл, который обрабатывает завершающие слешы.

Доступ к текущему маршруту

Текущий маршрут теперь доступен с помощью PHPRoute::current() вместо PHPRoute::getCurrentRoute().

Обновление Composer

Как только вы завершили все перечисленные выше обновления, вы можете выполнить команду shcomposer update, чтобы обновить файлы ядра приложения! Если у вас появляются ошибки загрузки класса, попытайтесь выполнить команду shupdate с параметром sh--no-scripts:

shcomposer update --no-scripts

На Linux вам может потребоваться сделать shsudo composer update, если вы получаете ошибку доступа.

Слушатели событий по шаблону

Слушатели событий по шаблону теперь не передают события в параметры ваших функций-обработчиков. Если вам надо найти событие, которое было запущено, вы должны использовать PHPEvent::firing().

Написать комментарий

Разметка: ? ?

Авторизуйся, чтобы прокомментировать.