Очереди — один из тех инструментов Laravel, о котором все знают, но мало кто понимает их полностью. И это не удивительно, ведь многие впервые сталкиваются с очередями именно в Laravel, а они не так уж и просты, на самом деле.
К счастью, в Laravel 5.3 произошло совсем немного внешних изменений в работе с очередями.
С помощью инструмента Laravel Echo вы легко сможете использовать мощь WebSockets в своих Laravel-приложениях. Он упрощает самые необходимые и самые трудные аспекты построения сложных взаимодействий WebSockets.
Echo состоит из двух частей: набора улучшений для системы вещания сообщений Laravel (Event broadcasting system), и нового пакета JavaScript.
Бэкендовые компоненты Echo уже встроены в ядро Laravel, начиная с версии 5.3, их не надо импортировать (в этом их отличие от таких компонентов, как Cashier). Вы можете использовать эти бэкендовые улучшения с любым JavaScript-фронтендом…
Мы уже рассмотрели новую папку routes и изменения в структуре папок. Но в Laravel 5.3 появилось ещё одно изменение — многие папки не создаются до тех пор, пока вы не выполните команду, которая к ним обращается.
Эти папки создавались в каждой новой версии до Laravel 5.3, но при этом часто не использовались, поэтому в новых установках их не будет. Вот список исчезнувших папок:
- Events
- Jobs
- Listeners
- Policies
Долгое время отправка писем в Laravel была не очень удобной в сравнении с относительно простым API большинства других функций Laravel. Вот пример отправки письма из документации Laravel 5.2:
За последние несколько лет в сообществе Laravel приобрели большую популярность поисковые инструменты ElasticSearch и Algolia — мощные средства для индексирования и поиска ваших данных. Бен Корлет проделал невероятную работу, представив ElasticSearch на Laracon Eu 2014, а я написал запрос на включение в Laravel написанного мной индексирования для документов на основе ElasticSearch в 2015 году. Но перед тем, как мой запрос был одобрен, люди из Algolia взяли мой код и переделали его на основе Algolia (она быстрее, и у неё лучше пользовательский интерфейс!), и теперь именно этот поиск вы видите в документации Laravel.
В Laravel отличная библиотека страничного вывода, потому что страничный вывод является одной из основных задач, а библиотека берёт на себя почти всю работу. Раньше изменять свои шаблоны страничного вывода было так же просто, как и работать с самой библиотекой.
Но в целях упрощения экспорта библиотеки страничного вывода в проекты на других фреймворках, в Laravel 5.0 (а может и раньше) появилась намного более сложная — но более переносимая — система шаблонов страничного вывода.
К счастью, в Laravel 5.3 всё стало так, как раньше — легко и просто.
В Laravel 5.3 появилась новая возможность проверки ввода: размер загружаемого изображения. Правило проверки называется dimensions, оно принимает следующие параметры:
- min_width — минимальная ширина (в пикселях)
- max_width — максимальная ширина
- min_height — минимальная высота
- max_height — максимальная высота
- width — требуемая ширина (должна быть равной этому значению)
- height — требуемая высота
- ratio — требуемое соотношение сторон (указывается в виде «ширина/высота»)
Если вам надо отфильтровать коллекцию Laravel и получить только те записи, которые соответствуют заданным критериям, то скорее всего вы воспользуетесь методами PHPfilter()
или PHPreject()
. Вот как это работает:
Возможность преобразования данных в формат JSON и из него появилась в Laravel в версии 5.0, но раньше это было сделано только для удобства, а данные хранились по-прежнему в текстовом поле. Но в MySQL 5.7 появился настоящий тип JSON.
В Laravel 5.3 появился простой синтаксис для поиска и изменения данных на основе значений конкретных ключей в JSON-столбцах.
Пришло время для ещё одной новой функции в Laravel 5.3!
Глобальные вспомогательные методы в Laravel
В своей книге я писал о том, что заметил наличие шаблона в таких глобальных вспомогательных методах, как PHPsession()
и, в каком то смысле, в PHPcookie()
. Они могут выполнять три основные функции: PHPget
— получить значение, PHPput
— передать значение, или вернуть экземпляр своего исполняющего сервиса.
Круто