PHP Backend | YeaHub – Telegram
PHP Backend | YeaHub
388 subscribers
234 photos
10 videos
428 links
Теория, подготовка к интервью и курсы для PHP разработчиков

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

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

Для связи: @ruslan_kuyanets
Download Telegram
#полезное
😊 Работаете с PHP Enum? Параметры маршрута могут автоматически валидировать и инжектить значения Enum

Laravel вернёт 404 для некорректных значений Enum, так что контроллеры остаются чистыми.

Ссылка на документацию: https://laravel.com/docs/12.x/routing#implicit-enum-binding

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
👨‍💻 Бета-релиз Laravel MCP

Библиотека, упрощающая создание серверов Model Context Protocol в приложениях Laravel. Даёт возможность AI-клиентам (таким как Claude, Cursor и ChatGPT) структурированный способ взаимодействия с вашим приложением.
https://laravel.com/docs/12.x/mcp

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#ЛитКод
Задача: 503. Next Greater Element II

Дан циклический массив целых чисел nums (т.е. следующий элемент после nums[nums.length - 1] это nums[0]), верните следующее большее число для каждого элемента в nums.

Следующее большее число для числа x — это первое большее число, следующее за ним в порядке обхода массива, что означает, что вы можете искать циклически, чтобы найти следующее большее число. Если оно не существует, верните -1 для этого числа.

Пример:
Input: nums = [1,2,1]
Output: [2,-1,2]
Explanation: The first 1's next greater number is 2;
The number 2 can't find next greater number.
The second 1's next greater number needs to search circularly, which is also 2.


👨‍💻 Алгоритм:

1⃣Инициализация
Создайте массив res той же длины, что и nums, и заполните его значениями -1.

2⃣Поиск следующего большего элемента
Для каждого элемента nums[i], используя индекс j, ищите следующий больший элемент среди следующих (циклически) n-1 элементов. Если найден больший элемент, обновите res[i] и прервите внутренний цикл.

3⃣Возврат результата
Верните массив res.

😎 Решение:
class Solution {
function nextGreaterElements($nums) {
$n = count($nums);
$res = array_fill(0, $n, -1);

for ($i = 0; $i < $n; $i++) {
for ($j = 1; $j < $n; $j++) {
if ($nums[($i + $j) % $n] > $nums[$i]) {
$res[$i] = $nums[($i + $j) % $n];
break;
}
}
}

return $res;
}
}


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

💬 Кратко:
Паттерн Singleton гарантирует, что класс будет иметь только один экземпляр и предоставляет глобальную точку доступа к этому экземпляру. Это полезно для классов, которые управляют общими ресурсами, такими как подключение к базе данных или конфигурации приложения.

📌 Полный разбор + примеры использования — на платформе:
👉
Перейти к разбору

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
#статьи
🤯 Использование файберов в PHP

PHP и асинхронность. Такая комбинация долгие годы казалась невозможной, ведь PHP прочно ассоциировался с блокирующим подходом и синхронным выполнением скриптов «от запроса до ответа». С выходом PHP 8.1 ситуация несколько изменилась — появилась возможность реализовать асинхронность в PHP на основе файберов. Но есть нюанс — вопрос о том, действительно ли PHP с приходом файберов стал асинхронным, по-прежнему для многих остается открытым.
Хабр

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
Партиционирование таблиц в MySQL может существенно повысить производительность запросов за счёт разбивки больших таблиц на более мелкие физические файлы

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #php
🤔 Как реализовать внедрение зависимостей (Dependency Injection) в РНР?

💬 Кратко:
Внедрение зависимостей (DI) в РНР осуществляется путём передачи зависимостей (например, объектов) в класс через его конструктор или методы. Это позволяет легко тестировать классы и управлять их зависимостями, избегая жёсткой привязки. Современные фреймворки, такие как Laravel и Symfony, используют контейнеры зависимостей для автоматического управления внедрением.

📌 Полный разбор + примеры использования — на платформе:
👉
Перейти к разбору

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#полезное
😎 Debugging and logging in Laravel applications

🟠 Логирование с помощью Monolog
🟠 Какие инструменты использовать для отладки
🟠 Устранение проблем с производительностью
🟠 Отладка и логирование в продакшене с помощью Sentry
https://blog.sentry.io/laravel-debugging-logging-guide/

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

Действия для строк таблицы не обязательно должны располагаться в конце.

С помощью RecordActionsPosition::BeforeColumns или BeforeCells их можно перенести перед данными или даже перед колонкой с чекбоксами.

Документация: https://filamentphp.com/docs/4.x/tables/actions#positioning-record-actions-before-columns

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

💬 Кратко:
Для удаления локальной ветки:
git branch -d ‹ branch_name>

Если ветка содержит незавершённые изменения:
git branch -D ‹ branch_name>

Для удаления удалённой ветки:
git push origin --delete ‹branch_name>


📌 Полный разбор + примеры использования — на платформе:
👉
Перейти к разбору

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😐 Можно сгенерировать коллекцию Postman прямо из своих Laravel-роутов

Просто установи пакет laravel-postman и выполни вот это

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

Нужно интегрироваться со сторонним сервисом? Поскольку HTTP-клиент в Laravel поддерживает макросы, можно определить под него отказоустойчивый HTTP-клиент с помощью макроса и использовать его по всему приложению

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
❤️‍🔥 Мега-совет по PHP: используйте #[SensitiveParameter] для чувствительных параметров.
PHP скроет их значение в стектрейсах, сообщениях об ошибках и логах..

Это предотвращает случайные утечки секретов на проде.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
🤝1
#Собес #php
🤔 Какова цель использования интерфейсов в РНР?

💬 Кратко:
Интерфейсы в РНР используются для создания контракта, который требует от классов реализации определённых методов, без определения того, как именно эти методы должны быть реализованы. Это помогает соблюдать принцип абстракции, улучшает организацию кода и упрощает взаимодействие между различными частями приложения. Интерфейсы также способствуют лучшей поддерживаемости и расширяемости кода.

📌 Полный разбор + примеры использования — на платформе:
👉
Перейти к разбору

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🤯 Иногда столбец в БД не нужен

Для одноразовых значений вроде токенов подтверждения email или OTP → просто закешируй их.

🔵Автоистечение
🔵Чище схема
🔵Без лишних столбцов

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
PHP-разработчики, когда слышат «PHP мёртв»…

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
#Собес #git
🤔 Что такое HEAD с точки зрения Git?

💬 Кратко:
HEAD в Git - это указатель на текущую ветку или коммит. Он показывает, над чем вы сейчас работаете, и меняется при переключении веток или выполнении коммитов.

📌 Полный разбор + примеры использования — на платформе:
👉
Перейти к разбору

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM