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

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

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

Для связи: @ruslan_kuyanets
Download 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
#Собес #Laravel
🤔 Что такое внедрение зависимостей в РНР- фреймворках?

Внедрение зависимостей - это паттерн проектирования, при котором объект получает свои зависимости (например, другие объекты) извне, а не создает их внутри себя. Это снижает зависимость классов друг от друга, улучшая тестируемость и поддерживаемость кода. В РНР фреймворках это реализуется через контейнеры зависимостей, которые управляют созданием и жизненным циклом объектов.

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

Защитите ваше приложение от спамеров при регистрации.

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

После достижения лимита пользователи/боты будут получать ошибку "429 Too Many Requests"

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
👍 Reli — профилировщик выборки или памяти

Это профилировщик, написанный на PHP, который считывает информацию о запуске виртуальной машины PHP извне процесса. Вы можете обнаружить узкие места производительности или утечки памяти в своих скриптах, не меняя целевой скрипт и не загружая расширения.
Гитхаб

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

Middleware в Laravel - это фильтры, которые перехватывают НТТР-запросы и ответы, добавляя кросс-сквозную логику. Они используются для задач, таких как проверка аутентификации, логирование, управление CORS или ограничение доступа. Middleware обрабатывает запрос до или после его передачи в контроллер, обеспечивая модульность и чистоту основной логики приложения.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😵‍💫 Будущее PHP: Свежий взгляд на то, что принесет PHP 9.0

PHP выходит на новый уровень строгости и чистоты кода. Вот самые важные изменения:

🟠 Инкременты и декремент
Теперь `'a9'++ вызовет TypeError вместо странного поведения.

🟠 Ошибки при unserialize()
Любая проблема при десериализации выбросит UnserializationFailedException.

🟠 Запрет на false как массив
Больше нельзя делать $arr[] = 2;, если $arr = false;.

🟠 Упрощение интерполяции строк
Старый синтаксис ${} будет удалён. Останется только $name в строках.

🟠 Предупреждения = Фатальные ошибки
Обращение к несуществующей переменной сразу остановит выполнение скрипта.

🟠 Удаление устаревших функций
Если видите депрекейшн-ворнинги — обязательно исправляйте.

Что можно делать уже сейчас:

Уберите все предупреждения из кода.

Настройте строгую типизацию и обработку ошибок.
Medium

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🏠 Нашёл годный пакет Laravel

gecche/laravel-multidomain: для использования Laravel-приложения в многодоменной конфигурации
https://github.com/gecche/laravel-multidomain

Этот пакет предоставляет очень простой способ получить отдельный .env-файл, отдельный путь к хранилищу и отдельную базу данных для каждого такого клиента.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🫡 Разработчики, возьмите на заметку: чему нас могут научить хакеры при ревью PHP-кода

Вот на что часто обращают внимание хакеры при ревью PHP-кода — $this->db->query

Этот простой паттерн помогает находить уязвимости типа SQL-инъекция буквально за минуты. Такие конструкции часто встречаются в небезопасных реализациях, особенно без параметризации запросов

Попробуйте сами: поищите это выражение в open-source проектах на GitHub — многие уязвимости видны сразу

Безопасный код — это ваш лучший контрприём

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

Laravel построен на архитектуре MVC, где Model отвечает за данные и бизнес- логику, View за отображение интерфейса, а Controller за обработку запросов. Laravel дополняет эту структуру инструментами, такими как маршрутизация, ORM Eloquent, Blade-шаблоны и Artisan для автоматизации задач. Такая архитектура обеспечивает модульность, масштабируемость и удобство разработки.

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

Функция parse_url() вернёт части URL, например, имя домена, если указать PHP_URL_HOST.
Документация

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