PHP Backend | YeaHub
216 subscribers
122 photos
7 videos
214 links
Теория, подготовка к интервью и курсы для PHP разработчиков

YeaHub — это платформа для IT-специалистов, объединяющая обучение, карьерный рост, развитие и сообщество единомышленников.

Платформа: https://yeahub.ru

Для связи: @ruslan_kuyanets
Download Telegram
#Собес #Laravel
🤔 Что такое маршрут (Route) в Laravel?

Маршрут в Laravel - это конечная точка, которая сопоставляется с URI (Uniform Resource Identifier). Он указывает, какую функцию или метод в контроллере нужно вызвать при определенном запросе. Также маршруты определяют, какие НТТР-методы (GET, POST и т.д.) могут быть использованы для доступа к этому URI.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🤓 Судя по результатам голосования, похоже, в PHP 8.5 появится оператор Pipe.
Смотри тут

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#новости
👍 FrankenPHP теперь официально поддерживается Фондом PHP

Репозиторий проекта будет перенесён в организацию PHP на GitHub

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
👨‍💻 Ускоряем работу в PhpStorm: самые полезные хоткеи

Продолжаем рассказывать про полезные фишки шторма для начинающих. Вот подборка дополнительных возможностей, не попавших в прошлые подборки:

🟠 Ctrl + E: открыть список недавно измененных файлов.

🟠 Alt + Insert: генерация кода, например, геттеров, сеттеров или конструкторов.

🟠 Shift + F6: переименование переменной, функции или файла.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #Laravel
🤔 Что такое обратное маршрутизирование в Laravel?

Обратное маршрутизирование в Laravel позволяет генерировать URL-адреса маршрутов на основе их имен. Это помогает избежать жесткой привязки к путям и делает код более гибким и читаемым.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#новости
❤️‍🔥 Новый оператор конвейера в PHP 8.5
Тык

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🫠 Задумывались, как работает загрузка файлов в PHP?

Когда пользователь отправляет файл, PHP предоставляет специальный массив $_FILES с именем, размером, типом и временным местоположением файла.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
Глобализируйте ограничения параметров маршрутов

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #Laravel
🤔 Какие файлы маршрутов по умолчанию существуют в Laravel?

B Laravel по умолчанию существуют четыре файла маршрутов: web. php для веб-маршрутов, арі.php для АР|-маршрутов, console-php для команд консоли и channel. php для каналов вещания событий.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😊 Совет по Laravel

Знали ли вы, что значения по умолчанию для столбцов базы данных можно задавать не только на уровне базы данных в миграциях, но и на уровне Eloquent-модели с помощью свойства $attributes?
Ссылка на документацию

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
👨‍💻 Архитектура в Laravel. Как сделать код понятным и масштабируемым

Сегодня речь пойдет о теме, где нет универсальных решений, но есть проверенные практики — как организовать код в Laravel, чтобы он оставался чистым даже спустя годы развития.
Хабр

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🛞 А вы знали, что можно задать дефолтные значения полей БД не только в миграциях, но и в Eloquent-модели с помощью $attributes?

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #Laravel
🤔 Перечислите некоторые функции Laravel.

Некоторые из ключевых функций Laravel включают: встроенную защиту от CSRF, пагинацию, обратное маршрутизирование, конструктор запросов, кеширование маршрутов, миграции баз данных, промежуточное ПО для заданий, и ленивые коллекции.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#статьи
🛞 Как использовать Enums в Laravel 12

С выходом PHP 8.1 в язык пришли Enum'ы — перечисления, которые делают код чище, безопаснее и выразительнее. Laravel 12 полностью поддерживает Enums и превращает их в мощный инструмент валидации, кастов моделей и отображения данных.

Что дают Enums?

Надёжная типизация и защита от ошибок

Удобство в работе с методами (label(), color(), isFinalized())

Простое использование в Eloquent, Blade, API, валидации

Мощные кастомные методы и проверка переходов состояний

Enums становятся частью доменной логики, а не просто значениями.

В статье — примеры, практики, best practices и советы по производительности.
Medium

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🤓 RoadRunner — высокопроизводительный application server на Go. Этот проект заменяет связку Nginx+PHP-FPM, позволяя запускать PSR-7-совместимые приложения с поддержкой HTTP/3, WebSockets и даже Temporal workflow.

Конфигурация через .rr.yaml напоминает docker-compose: можно подключать очереди, кеш и метрики как плагины. Рабочие процессы PHP остаются в памяти, что даёт до 10x прирост скорости против традиционного FPM. Особенно радует встроенная система мониторинга и автоматические рестарты упавших воркеров.
Гитхаб

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #Laravel
🤔 Как определить переменные окружения в Laravel?

B Laravel переменные окружения определяются в файле .env , который находится в корне проекта. При установке Laravel создается файл - env. example , который копируется и переименовывается в .env . В этом файле настраиваются ключевые параметры, такие как подключение к базе данных, настройки почты и другие важные параметры, например, APP_ENV , D_HOST, DB_PORT и другие.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🛞 Новый метод toResource() в Laravel 12 упрощает код

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#ЛитКод
Задача: 774. Minimize Max Distance to Gas Station

Вам дан массив целых чисел 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];

$dp = array_fill(0, $N-1, array_fill(0, $K+1, 0));
for ($i = 0; $i <= $K; ++$i)
$dp[0][$i] = $deltas[0] / ($i+1);

for ($p = 1; $p < $N-1; ++$p)
for ($k = 0; $k <= $K; ++$k) {
$bns = 999999999;
for ($x = 0; $x <= $k; ++$x)
$bns = min($bns, max($deltas[$p] / ($x+1), $dp[$p-1][$k-$x]));
$dp[$p][$k] = $bns;
}

return $dp[$N-2][$K];
}
}


👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM