PHP — Вопросы для собеседований
Программирование на PHP
Базовое программирование на PHP и стандартная библиотека — функции для массивов и строк, замыкания и стрелочные функции, именованные аргументы и первоклассные вызываемые, JSON против сериализации, многобайтовый текст, внедрение зависимостей и потоковая обработка больших файлов.
27 вопросов
Composer и автозагрузка
Управление зависимостями через Composer — lock-файл и ограничения semver, автозагрузка PSR-4 и пространства имён, require против require-dev, стандарты взаимодействия PSR от PHP-FIG и оптимизация автозагрузчика для продакшена.
13 вопросов
Базы данных и PDO
Работа с базой данных из PHP — PDO против mysqli, подготовленные выражения и транзакции, оптимистичные и пессимистичные блокировки, индексы и поиск недостающего индекса, а также управление соединениями в модели shared-nothing под php-fpm.
14 вопросов
Деплой и эксплуатация
Эксплуатация PHP в продакшене — конфигурация окружения через .env, логирование и мониторинг ошибок, фича-флаги для рискованных выкаток, стратегии деплоя без простоя и планировщик задач на нескольких серверах приложения.
10 вопросов
Ядро фреймворка
Что на самом деле делают за вас Laravel и Symfony — MVC, сервис-контейнер и автовайринг, middleware и события, маршрутизация и контроллеры, шаблонизаторы Blade и Twig, валидация, политики и голосующие для авторизации, а также аутентификация API.
23 вопросов
Основы языка PHP
Базовая семантика PHP — нестрогое и строгое сравнение и приведение типов, include и require, работа с null через isset/empty и операторы объединения с null, строковые литералы и heredoc, области видимости переменных и ссылки, а также выражение match.
16 вопросов
ООП в PHP
Объектно-ориентированный PHP — интерфейсы против абстрактных классов, трейты и разрешение конфликтов имён, магические методы, области видимости и позднее статическое связывание, продвижение свойств и readonly, перечисления, статические члены и паттерны, которые просят написать на собеседовании.
22 вопросов
ORM и слой персистентности
Слой персистентности на Eloquent и Doctrine — Active Record против Data Mapper, миграции, проблема N+1 и её обнаружение в продакшене, ленивая и жадная загрузка, массовое присваивание, сидеры и фабрики, а также вопрос о том, оправдан ли репозиторий поверх ORM.
10 вопросов
Производительность и кэширование
Как ускорить PHP — кэширование на уровне приложения в Redis или Memcached, инвалидация кэша, очереди и асинхронные задачи, профилирование через Xdebug и Blackfire, масштабирование пула php-fpm, вынос статики на CDN и заголовки HTTP-кэширования.
13 вопросов
Среда выполнения и внутреннее устройство PHP
Как работает PHP — модель shared-nothing, демоны, php-fpm с nginx, OPcache и его настройка в проде, генераторы и итераторы, возможности PHP 8, воркер-рантаймы (FrankenPHP, RoadRunner, Octane) и внутреннее устройство движка (JIT, refcount и сборщик циклов, copy-on-write у zval).
17 вопросов
Безопасность PHP-приложений
Безопасность веб-приложений на PHP — SQL-инъекции и подготовленные выражения, XSS и экранирование вывода, CSRF-токены, хеширование паролей, безопасность сессий и их фиксация, валидация входных данных против кодирования вывода, хранение секретов и ограничение частоты запросов.
12 вопросов
Тестирование на PHP
Тестирование кода на PHP — стандарты кода (PSR), инструменты PHPUnit/Pest и мокирование внешних зависимостей через внедряемые точки расширения.
16 вопросов
Типы и обработка ошибок
Система типов и модель ошибок PHP — ошибки против исключений, иерархия Throwable, семантика try/finally, объявления union- и intersection-типов, приведение типов при strict_types, атрибуты и их чтение через Reflection, а также собственные обработчики ошибок.
17 вопросов