Метка: Laravel

  • Быстродействие коллекций Laravel

    Photo by Bruno Guerrero on Unsplash

    Привет. Это небольшой пост-шпаргалка. В нём речь пойдёт о классах Illuminate\Support\{Collection, LazyCollection}.

    Я обожаю коллекции Laravel. Они очень гибки и комфортны в использовании при обработке массивов данных. Однако это балует и расслабляет разработчика. Более того, вся философия Laravel и good practices вертятся вокруг гибкости и простоты написания кода. Всё это может плохо сказаться (и в итоге сказывается) на производительности бекенда.

    Ниже рассмотрим несколько конкретных случаев, на которые следует обратить внимание.

    (далее…)
  • Laravel: скаляры в замыканиях маршрутов и контроллерах

    Привет. Для начала небольшое предисловие и контекст.

    Это мой перевод оригинальной заметки «Primitive Types in Controllers and Closure Routes» от Paul Redmond (кеш). Я нашёл её когда пытался разобраться с одной маленькой проблемой при работе с маршрутами и их параметрами в Laravel.

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

    (далее…)
  • Почему Laravel пытается подключиться к БД при инициализации?

    assorted electric cables
    Photo by John Barkiple on Unsplash

    Столкнулся на работе с занятной проблемой на Laravel 9.

    Однажды, я, прогоняя тесты phpunit, никак не мог добиться их удачного выполнения: они постоянно падали, но написаны гарантированно верно, вчера их запускал. Через какое-то всё прошло. Я не был удивлён: на БД-песочнице проводились работы, вскоре она была перезапущена и я таки прогнал тесты с успехом.

    Но осознав произошедшее меня обдало ледяным потом — стоп, а какого хуя? В моих тестах нет подключения к БД!

    (далее…)
  • Простой способ реализовать модульную структуру Laravel-проекта

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

    Это не потребует подключения новых пакетов, перестройки директорий фреймворка и вот этого всего. Всё сводится к следущему:

    (далее…)
  • Laravel 5.8: настроить часовые пояса для пользователей

    Привет. Заметка по следам предыдущего материала: Даты, деньги и enum.

    Однажды, пока я работал над проектом, меня осенило. Даты-то у меня везде разные!

    Во-первых, система, которую я разрабатываю, зависит от стороннего API. Оттуда даты приходят в чистом UTC, что хорошо. Время моего сервера — московское (UTC+3), допустим это окей, судить не берусь. А время в конфигах лары — Asia/Irkutsk (UTC+8). Вот здрасьте. Надо решать проблему.

    Лара отдаёт мускулю даты (тип timestamp) как они есть и мускуль их такими пишет в БД. В этих timestamp-ах не указан часовой пояс, что хорошо для нас — это даёт гибкость. Время сервера никак на ни на что это не влияет, так что этим можем пренебречь. Уже легче.

    Теперь нужно понять что в каком порядке корректировать. План таков:

    (далее…)