[Перевод] Вышел релиз Laravel 5.3

Команда Laravel с гордостью объявляет о релизе Laravel 5.3, доступной для всех. Новые возможности версии 5.3 направлены на улучшение скорости разработчика за счет добавления и улучшения функций «из коробки».

Этот релиз будет получать общие обновления в течение шести месяцев, и обновления безопасности в течение одного года. Laravel 5.1 является последней версией LTS, включающей исправления ошибок в течение двух лет, и исправления безопасности в течение трех лет.

Ниже краткий обзор некоторых основных моментов новой 5.3 версии.

image

Новая домашняя страница


image

Домашняя страница получила новый интерфейс, демонстрирующий новые пакеты и ресурсы сообщества, включая ссылки на Laracast, Laravel News и Statamic.

Laravel Scout


Laravel Scout является новым драйвером, основанным на полнотекстовом поиске в Eloquent. Scout работает путем добавления новой возможности поиска к моделям, синхронизируя свои данные с индексом выбора, после чего можно легко найти нужное:
Post::search('Alice')->get();

Laravel Passport


Laravel Passport разработан, чтобы предоставить Вам все необходимое для разворачивания собственного сервера аутентификации oAuth 2.0 в считанные минуты. Этот пакет не обязателен, хоть и идет «в коробке» с возможностью легкого его подключения, использующий Vue.js для генерации токена, отмены токена и всего прочего.

Laravel Mailable and Notifications


Laravel Mailable является новым базовым классом, ориентированным для упрощения отправки email-сообщений, исключая необходимость закрытия стилей.

Laravel Notifications позволяют отправлять быстрые сообщения через такие сервисы, как Slack, Text messages, Email и другие. Мы даже запустили канал «Laravel Notifications Channel», содержащий уже более 26 драйверов, а также любой желающий может добавить свой драйвер.

Laravel Echo


Laravel Echo является усовершенствованной существующей системой вещания событий, что позволяет легче работать с веб-сокетами. Бэкенд Echo поставляется с ядром Laravel, для использования которого Вам нужно будет подключить его через NPM менеджер для работы на стороне JavaScript.

Миграции


Система миграций получила новую функцию, позволяющую произвести откат сразу на несколько шагов.
php artisan migrate:rollback --step=1

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

Простая пагинация


Laravel предлагает два стиля пагинации. Расширенный стиль показывает список номеров страниц, и простой стиль, отображающий лишь ссылки для показа предыдущей и следующей страниц.

Начиная с этого релиза, простая пагинация будет иметь отдельный файл шаблона для более удобной настройки под дизайн Вашего проекта путем изменения структуры HTML.

Переменная Loop в Blade


Laravel Blade получил новую переменную `$loop`, предоставляющую более точный контроль в пределах цикла. Теперь Вы можете использовать следующие свойства:
  1. index — номер цикла.
  2. remaining — как много циклов осталось.
  3. count — общее количество циклов.
  4. first — если это первая итерация цикла.
  5. last — если это последняя итерация цикла.
  6. depth — сколько уровней глубины цикла.
  7. parent — позволяет вызывать родителя во вложенном цикле.

Более подробно о переменной читайте в блоге Мэта Стауфера.

Изменение структуры


Упрощена папка `app`, удалив все пустые папки `Events`, `Jobs`, `Listeners` и `Policies`. При использовании artisan команды `make:` все необходимые файлы и папки будут созданы автоматически.

Очередь заданий


Eloquent Collections теперь аккуратно сериализованы и повторно добавлены в очереди таким же образом, как и отдельные модели.

Это полезно в тех случаях, когда данные в Eloquent Collections изменились с момента добавления в очередь.

Конструктор запросов


Конструктор запросов теперь по-умолчанию будет возвращать коллекцию вместо массива. Это потенциально критическое изменение, зато теперь он будет держать результаты или из конструктора запросов, или форме Eloquent.

Хелпер кэша


Laravel 5.3 включет в себя новый глобальный хелпер `cache ()`, позволяющий получить, изменить или вернуть данные. Для получения дополнительной информации, прочтите пост Мэта.

Изменение документации


Для этого выпуска раздел документации претерпел значительные изменения. Теперь он лучше разделен на блоки, проводящие Вас от установки Laravel до использования официальных пакетов. Она также содержит ссылки на соответствующие теме видео с Laravast. Это позволит удовлетворить потребности людей как предпочитающих аудио-видео обучения, так и любящих читать.

Инструкция по апгрейду


Официальная документация имеет руководство по апгрейду, включающее в себя всю необходимую информацию для начала использования Laravel 5.3 уже сегодня. Ориентировочно, апгрейд займет 2–3 часа.

Спасибо


Я бы хотел лично поблагодарить всех тех, кто способствовал выходу этой версии. Добавление новых возможностей было огромной задачей и все, кто помогал в этом, заслужили дружеских объятий.

Присоединяйтесь к еженедельной новостной рассылке, чтобы быть в курсе всех новых возможностей, советов и обучающих программ, которые обязательно будут. Кроме того, Laracast, как и Мэтт Стауфер, предоставляет бесплатную информацию о всех новых фишках.

Комментарии (6)

  • 24 августа 2016 в 07:03

    +2

    Одно из пока что незадокументированных изменений — в конструкторах контроллеров теперь нельзя получить инстанс авторизованного юзера (и, скорее всего, любые другие инстансы, которые зависят от Middleware). Т.е. если в <= 5.2 вы где-то использовали такой код:


    class HomeController extends Controller
    {
        protected $user;
    
        public function __construct()
        {
            $this->user = Auth::user(); // Или auth()->user()
        }
    }

    то теперь это не работает.

  • 24 августа 2016 в 07:09

    –2

    В YII есть такое понятие как Виджеты!!!
    widget('CMaskedTextField',array(
        'mask'=>'99/99/9999'
    ));
    ?>
    

    Есть ли что то подобное для или в Ларавел ?
    Конечно понимаю что это костыль все таки, мешать серверсайд с клиентсайд, но все таки!!!
    • 24 августа 2016 в 07:10

      0

      Из коробки такого нет. Но это можно решить через так называемые view composer.
    • 24 августа 2016 в 07:35

      +3

      Вы правда считаете, что вашему комментарий необходимо было шесть знаков восклицания? Мне вот кажется, что их у вас на шесть больше, чем требуется по смыслу.
      • 24 августа 2016 в 07:43

        0

        * вашему комментарию, разумеется.
  • 24 августа 2016 в 07:09

    +1

    Ну наконец-то :)

© Habrahabr.ru