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

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

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

Для связи: @ruslan_kuyanets
Download Telegram
#Собес
🤔 Как реализовать AJAX в РНР?

AJAX в PHP реализуется с помощью JavaScript, который отправляет асинхронные запросы на сервер через объект XMLHttpRequest . На сервере PHP-скрипт обрабатывает запрос, выполняя необходимые операции (например, доступ к базе данных), и отправляет ответ в формате JSON или XML. Затем JavaScript обрабатывает этот ответ и обновляет веб-страницу без перезагрузки.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
В Laravel появилась новая функция — мемоизация кэша


Теперь с помощью метода Cache::memo можно обернуть любое хранилище кэша в обёртку с мемоизацией.

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

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🤯 Вы когда-нибудь сталкивались с проблемами или головной болью при попытке поддерживать документацию API в актуальном состоянии во время разработки?

Не переживайте — позвольте представить Scramble — генератор документации OpenAPI (Swagger) для Laravel.

Этот пакет после установки автоматически генерирует документацию для ваших API, анализируя ваш код.

Он работает лучше всего, когда вы используете классы Form Request и API Resources в своих API.

Этот пакет умеет очень многое

Вот несколько базовых шагов для установки пакета и запуска документации:

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🛞 CLI-лайфхак для PHP-разработчиков: Быстрое выполнение одноразовых команд с помощью опции -r

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

Как это сделать?

1⃣ Откройте терминал на вашем компьютере.

2⃣ Введите следующую команду, заменив код внутри одинарных кавычек на нужный вам PHP-код:
php -r 'echo «Привет, мир!\n»;'


Почему это удобно?

🟠 Быстрота: нет необходимости создавать отдельный файл для выполнения небольшого фрагмента кода.

🟠 Удобство: идеальный способ для тестирования небольших функций или выражений.

🟠 Гибкость: позволяет комбинировать PHP с другими командными инструментами для автоматизации задач.

Обратите внимание:

Экранирование кавычек: при использовании одинарных кавычек внутри PHP-кода их необходимо экранировать обратным слэшем (\'), чтобы избежать конфликтов с внешними кавычками.
php -r 'echo \'Это строка с одинарными кавычками.\' . «\n»;'


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

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

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

Когда вы развёртываете изменения, пользователи могут столкнуться с недоступностью сайта.

Вы можете отобразить общую страницу «обслуживания», запустив команду php artisan down перед деплоем и php artisan up после него.

Также флаг --refresh=15 будет автоматически обновлять эту страницу каждые 15 секунд, чтобы проверить, остаётся ли сайт в режиме обслуживания. Если нет — будет отображена обычная страница проекта.

Наконец, вы можете кастомизировать страницу обслуживания, определив свой шаблон в resources/views/errors/503.blade.php.
Подробнее в документации

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🛞 Новое в Laravel 12: больше не нужно вызывать new Resource() или Resource::collection().

Вместо этого используйте новые методы toResource() и toResourceCollection().

Теперь Laravel автоматически определяет соответствующие классы ресурсов
Ссылка на документацию

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

В РНР для работы с JSON используются две основные функции: json_encode() и json_decode() . Функция json_encode() преобразует данные РНР в строку формата JSON, a json_decode() - наоборот, преобразует строку JSON в переменные РНР. Эти функции удобны для обмена данными между сервером и клиентом или с внешними АРІ. Важно также обрабатывать ошибки при декодировании или кодировании JSON, чтобы избежать проблем с некорректным форматом данных.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😎 Ошибки неизбежны в любом приложении — они всегда будут возникать на вашем пути.

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

Но иногда такие сообщения могут непреднамеренно раскрывать конфиденциальные данные вашего приложения.

Именно по этой причине в PHP был введён атрибут SensitiveParameter, чтобы вы могли скрыть такие параметры из трассировки стека и логов ошибок.

Смотрите пример выше

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

Используйте Route::resource('photos.comments', CommentController::class), чтобы автоматически сгенерировать ВЛОЖЕННЫЕ маршруты ресурсов.

Шаблон URL будет таким: /photos/{photo}/comments/{comment}
Ссылка на документацию

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#ЛитКод
Задача: 713. Subarray Product Less Than K

Если задан массив целых чисел nums и целое число k, верните количество смежных подмассивов, в которых произведение всех элементов в подмассиве строго меньше k.

Пример:
Input: nums = [10,5,2,6], k = 100
Output: 8


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

1⃣Инициализируйте переменные для отслеживания текущего произведения и количества допустимых подмассивов. Используйте два указателя для границ подмассива.

2⃣Перемещайте правый указатель по массиву и умножайте текущий элемент на текущее произведение. Если произведение становится больше или равно k, перемещайте левый указатель, уменьшая произведение до тех пор, пока оно снова не станет меньше k.

3⃣Подсчитайте количество подмассивов с текущим правым указателем, добавив к общему количеству допустимых подмассивов разницу между правым и левым указателями.

😎 Решение:
function numSubarrayProductLessThanK($nums, $k) {
if ($k <= 1) return 0;
$product = 1;
$count = 0;
$left = 0;
for ($right = 0; $right < count($nums); $right++) {
$product *= $nums[$right];
while ($product >= $k) {
$product /= $nums[$left];
$left++;
}
$count += $right - $left + 1;
}
return $count;
}


👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Расскажите про все методы Promise?

Основные методы промиса включают: then() - для обработки успешного выполнения, catch() - для обработки ошибок, finally() - для выполнения кода по завершению промиса, независимо от результата. Есть также методы Promise.all(), Promise.race(), Promise.allSettled() И Promise.any() , которые позволяют работать с несколькими промисами одновременно.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#статьи
🤯 Наблюдатели и Слушатели в Laravel — в чём разница?
Читать тут

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#статьи
❤️‍🔥 Метрики эффективности сотрудника

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

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

Иногда стоит пересмотреть, как мы оцениваем эффективность. Потому что не все цифры отражают суть.
Подробности в статье

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

Cookies в PHP устанавливаются через функцию setcookie(), а сессии - с помощью функции session_start() . Cookies хранят данные на стороне клиента, а сессии - на сервере. Для работы с сессиями используются суперглобальные массивы $_SESSION , а для работы с cookies - $_соокЕ .

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