B Laravel по умолчанию существуют четыре файла маршрутов: web. php для веб-маршрутов, арі.php для АР|-маршрутов, console-php для команд консоли и channel. php для каналов вещания событий.
Знали ли вы, что значения по умолчанию для столбцов базы данных можно задавать не только на уровне базы данных в миграциях, но и на уровне Eloquent-модели с помощью свойства $attributes? Ссылка на документацию
#полезное 👨💻Архитектура в Laravel. Как сделать код понятным и масштабируемым
Сегодня речь пойдет о теме, где нет универсальных решений, но есть проверенные практики — как организовать код в Laravel, чтобы он оставался чистым даже спустя годы развития. Хабр
Некоторые из ключевых функций Laravel включают: встроенную защиту от CSRF, пагинацию, обратное маршрутизирование, конструктор запросов, кеширование маршрутов, миграции баз данных, промежуточное ПО для заданий, и ленивые коллекции.
С выходом PHP 8.1 в язык пришли Enum'ы — перечисления, которые делают код чище, безопаснее и выразительнее. Laravel 12 полностью поддерживает Enums и превращает их в мощный инструмент валидации, кастов моделей и отображения данных.
Что дают Enums?
Надёжная типизация и защита от ошибок
Удобство в работе с методами (label(), color(), isFinalized())
Простое использование в Eloquent, Blade, API, валидации
Мощные кастомные методы и проверка переходов состояний
Enums становятся частью доменной логики, а не просто значениями.
В статье — примеры, практики, best practices и советы по производительности. Medium
#полезное 🤓RoadRunner — высокопроизводительный application server на Go. Этот проект заменяет связку Nginx+PHP-FPM, позволяя запускать PSR-7-совместимые приложения с поддержкой HTTP/3, WebSockets и даже Temporal workflow.
Конфигурация через .rr.yaml напоминает docker-compose: можно подключать очереди, кеш и метрики как плагины. Рабочие процессы PHP остаются в памяти, что даёт до 10x прирост скорости против традиционного FPM. Особенно радует встроенная система мониторинга и автоматические рестарты упавших воркеров. Гитхаб
B Laravel переменные окружения определяются в файле .env , который находится в корне проекта. При установке Laravel создается файл - env. example , который копируется и переименовывается в .env . В этом файле настраиваются ключевые параметры, такие как подключение к базе данных, настройки почты и другие важные параметры, например, APP_ENV , D_HOST, DB_PORT и другие.
Вам дан массив целых чисел stations, который представляет позиции автозаправочных станций на оси x. Вам также дано целое число k.
Вы должны добавить k новых автозаправочных станций. Вы можете добавлять станции в любое место на оси x, необязательно в целочисленную позицию.
Определим penalty() как максимальное расстояние между соседними автозаправочными станциями после добавления k новых станций.
Верните наименьшее возможное значение penalty(). Ответы, отличающиеся от фактического ответа не более чем на 10^-6, будут приняты.
Пример:
Input: stations = [1,2,3,4,5,6,7,8,9,10], k = 9 Output: 0.50000
👨💻Алгоритм:
1⃣Пусть i-й интервал равен deltas[i] = stations[i+1] - stations[i]. Мы хотим найти dp[n+1][k] как рекурсию. Мы можем поставить x автозаправочных станций в интервал n+1 с наилучшим расстоянием deltas[n+1] / (x+1), затем оставшиеся интервалы можно решить с ответом dp[n][k-x]. Ответ — это минимум среди всех x.
2⃣Из этой рекурсии мы можем разработать решение с использованием динамического программирования. Инициализируем двумерный массив dp, где dp[i][j] будет хранить минимальное возможное значение penalty при добавлении j автозаправочных станций на первые i интервалов.
3⃣Заполняем dp таблицу начиная с базового случая, когда нет добавленных станций. Затем для каждого интервала и количества добавленных станций вычисляем минимальное значение penalty, используя вышеописанную рекурсию. Итоговый ответ будет находиться в dp[n][k], где n — количество интервалов, а k — количество добавляемых станций.
😎Решение:
class Solution { function minmaxGasDist($stations, $K) { $N = count($stations); $deltas = array_fill(0, $N-1, 0); for ($i = 0; $i < $N-1; ++$i) $deltas[$i] = $stations[$i+1] - $stations[$i];
Внедрение зависимостей - это паттерн проектирования, при котором объект получает свои зависимости (например, другие объекты) извне, а не создает их внутри себя. Это снижает зависимость классов друг от друга, улучшая тестируемость и поддерживаемость кода. В РНР фреймворках это реализуется через контейнеры зависимостей, которые управляют созданием и жизненным циклом объектов.
Защитите ваше приложение от спамеров при регистрации.
Побочный эффект: если вы отправляете электронные письма при регистрации, это поможет избежать переполнения очереди email-уведомлений и лишних расходов на услуги почтового провайдера.
После достижения лимита пользователи/боты будут получать ошибку "429 Too Many Requests"
#полезное 👍Reli — профилировщик выборки или памяти
Это профилировщик, написанный на PHP, который считывает информацию о запуске виртуальной машины PHP извне процесса. Вы можете обнаружить узкие места производительности или утечки памяти в своих скриптах, не меняя целевой скрипт и не загружая расширения. Гитхаб
Middleware в Laravel - это фильтры, которые перехватывают НТТР-запросы и ответы, добавляя кросс-сквозную логику. Они используются для задач, таких как проверка аутентификации, логирование, управление CORS или ограничение доступа. Middleware обрабатывает запрос до или после его передачи в контроллер, обеспечивая модульность и чистоту основной логики приложения.