
Валидация и фильтрация данных в PHP: рабочие приёмы
filter_var, htmlspecialchars и подготовленные запросы решают разные задачи, и путаница между ними даёт то дыры в безопасности, то потерянные данные. Разбираем, где чему место.

filter_var, htmlspecialchars и подготовленные запросы решают разные задачи, и путаница между ними даёт то дыры в безопасности, то потерянные данные. Разбираем, где чему место.

filter_var, приведение типов и параметризованные запросы — как проверять данные в PHP 8.x так, чтобы форма не пропускала мусор, а база не ловила инъекции.

Открыли файл, записали, забыли проверить ошибку — и в проде получили молча потерянные данные. Разбираем, что проверить в работе с fstream перед релизом.

Два способа работать с базой в PHP делают одно и то же по-разному. Разбираем, где mysqli выигрывает пару процентов, а PDO экономит недели при смене СУБД и защищает от инъекций.

Генератор экономит память, но ломается на нетривиальных сценариях: возврат значения, обработка исключений, повторный обход. Разбираем, что проверить перед выкатом.

Как писать тесты на GoogleTest так, чтобы падение показывало причину, а не факт. Параметризация, фикстуры, моки и подводные камни ASSERT против EXPECT.

Когда обычный массив съедает всю память на большом CSV, а построчное чтение выглядит громоздко. Разбираем, где yield реально помогает в PHP 8.x, а где создаёт скрытые проблемы.

Три слоя кеша в PHP решают три разные задачи, и подмена одного другим бьёт по производительности. Разбираем, что кешировать в opcache, что в APCu, а что выносить в Redis.

json_decode вернул null, а вы этого не проверили — и клиентский код упал на пустом ответе. Разбираем ошибки при работе с JSON и HTTP-API в PHP 8.x: от молчаливых null до таймаутов, которые вешают весь запрос.

Что проверить в коде, который парсит JSON и ходит во внешние API, прежде чем выкатывать его на боевой сервер: от флагов json_decode до таймаутов cURL.

cURL, Guzzle, Symfony HttpClient и нативный json_encode с флагами — четыре способа ходить в чужой API из PHP 8.x. У каждого своя цена: контроль, зависимости, поведение при ошибках.

Разбираем, как объявить namespace, подключить классы через use и связать всё с автозагрузкой PSR-4, чтобы не ловить Class not found. Для PHP 8.x.