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

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

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

Для связи: @ruslan_kuyanets
Download Telegram
#Собес #php
🤔 Как предотвратить SQL-иньекции в РНР-приложениях?

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

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🥄 Новое в Laravel 12.21 на этой неделе:

Теперь при запуске php artisan db:seed будет отображаться время выполнения.

Ранее Laravel показывал это только при запуске с указанием конкретного сидера через --class=SomeSeeder.

Ссылка на PR:
https://github.com/laravel/framework/pull/56310

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🤯 Совет по PHP: знали ли вы, что isset() может принимать несколько аргументов?

Функция вернёт true только в том случае, если все переданные переменные считаются установленными.
Проверка выполняется слева направо и останавливается при первом необъявленном или null-значении.

Документация: https://php.net/manual/en/function.isset.php

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😱 How to: миграция больших баз данных в Laravel

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

Основная стратегия — это метод «Double Write + Backfill», который включает несколько шагов:

1⃣ Добавление новых колонок или таблиц без удаления старых, чтобы данные продолжали работать.
2⃣ Реализация логики «двойной записи»: во время обновлений и вставок данных записываются в обе колонки (старую и новую).
3⃣ Заполнение новых данных с помощью команд Artisan для миграции существующих записей.
4⃣ Подготовка плана отката на случай ошибок.
5⃣ Переход на новую структуру после завершения миграции и перехода всех данных.
Medium

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #php
🤔 В чем разница между методами GET и POST?

Метод GET используется для получения данных, а POST — для их отправки на сервер. Данные GET передаются через URL, a POST - в теле запроса. GET запросы кэшируются и могут быть сохранены в истории браузера, тогда как POST запросы более защищены для передачи данных.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😎 Используйте метод upsert() для эффективных операций "вставить или обновить" в одном SQL-запросе.
Это намного быстрее, чем сначала проверять существование записи, особенно при массовых вставках.

Документация: https://laravel.com/docs/12.x/queries#upserts

Примечание: Все базы данных, кроме SQL Server, требуют, чтобы колонки, указанные во втором аргументе метода upsert, имели первичный или уникальный индекс.
Кроме того, драйверы баз данных MariaDB и MySQL игнорируют второй аргумент upsert и всегда используют первичный и уникальные индексы таблицы для определения существующих записей.

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

Хочешь единообразные ответы об успехе и ошибках?

Вот пример кода, который я увидел в одном опенсорс проекте:

Зарегистрируй кастомные функции как макросы (Macro) в фасаде Response через ServiceProvider.

Конечно, альтернатива — вынести эти методы в трейты или базовый контроллер

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

Сессия - это механизм сохранения данных между запросами. При запуске сессии сервер генерирует уникальный идентификатор (ID), который хранится в cookie или передаётся через URL. Сервер сохраняет данные сессии на стороне сервера, а клиент использует идентификатор для доступа к этим данным.

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

Для улучшения производительности используйте кеширование (например, Opcache), минимизируйте сложность запросов к базе данных с помощью индексации и подготовленных запросов, а также обновляйте РНР до последней версии. Сократите использование тяжёлых библиотек, оптимизируйте работу с файлами и используйте CDN для загрузки статического контента.

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