AI
prepair.app
Пройти інтерв'ю →
EnglishРусскийУкраїнська
🐘

Middle PHP Backendпитання на співбесіді PHP

Middle · 2–4 роки досвіду

Співбесіда PHP охоплює семантику мови, ООП, Laravel або Symfony, MySQL та основи веббезпеки. Нижче — найчастіші питання з еталонними відповідями. Middle: глибше розуміння, оптимізацію та реальні робочі ситуації.

Теми для підготовки

ООП і SOLID у PHP
Laravel / Symfony
MySQL та оптимізація запитів
Composer і автозавантаження
Сесії, куки, безпека
Стандарти PSR

8 питань рівня Middle з відповідями

1

Що таке traits? Чим вони відрізняються від успадкування та інтерфейсів?

Відповідь

Trait — це блок методів і властивостей, який підмішується в клас в обхід одиночного успадкування PHP. Інтерфейс оголошує контракт без реалізації; успадкування дає звʼязок «є» з одним батьком; trait дає перевикористовувану реалізацію без типового звʼязку. Конфлікти між трейтами треба розвʼязувати явно через insteadof або as.

2

Поясніть принципи SOLID на прикладах PHP.

Відповідь

Single Responsibility: у класу одна причина для зміни, тому контролер не збирає ще й PDF. Open/Closed: поведінку розширюють новими класами, а не правкою наявних. Liskov: нащадка можна підставити всюди, де очікується батько. Interface Segregation: багато маленьких інтерфейсів краще за один роздутий. Dependency Inversion: залежати від інтерфейсів, переданих у конструктор, а не від конкретних класів, створених через new.

3

Що таке Dependency Injection Container у Laravel і як він працює?

Відповідь

Контейнер розвʼязує залежності автоматично: він читає тайп-хінти конструктора через рефлексію і рекурсивно створює все необхідне. Інтерфейси привʼязують до конкретних реалізацій у сервіс-провайдері, тому підміна реалізації це правка одного рядка. Singleton-привʼязки віддають один екземпляр на життєвий цикл запиту, що важливо для сервісів зі станом на кшталт пулу зʼєднань.

4

Як захиститися від SQL-інʼєкцій? Що таке prepared statements?

Відповідь

Підготовлений запит надсилає структуру SQL і параметри окремо, тому користувацький ввід ніколи не парситься як SQL, а помилки екранування не перетворюються на інʼєкцію. У PHP це PDO або mysqli з привʼязкою параметрів чи ORM, який робить це за вас. Уразливість створює саме конкатенація рядків у запит; функції екранування — крихка заміна, бо залежать від кодування й контексту.

5

Що таке Eloquent ORM? Поясніть N+1 і як її вирішити.

Відповідь

Eloquent — це active-record ORM Laravel, де модель відображається на таблицю, а звʼязки описуються методами. N+1 виникає, коли ви йдете циклом по моделях і звертаєтесь до звʼязку, породжуючи по запиту на рядок. Лікується жадібним завантаженням через with(), а зловити це в розробці допомагає Model::preventLazyLoading(), після якого ліниве звернення падає з помилкою замість тихої деградації.

6

Що таке middleware у Laravel? Наведіть приклад використання.

Відповідь

Middleware загортає конвеєр HTTP-запиту і дозволяє виконати код до або після контролера — автентифікація, обмеження частоти запитів, заголовки CORS, логування. Кожен middleware отримує запит і замикання $next, вирішує, чи пропускати далі, і може змінити відповідь на зворотному шляху. За рахунок композиції наскрізна логіка не розповзається по контролерах.

7

Як працює автозавантаження класів через Composer і PSR-4?

Відповідь

PSR-4 зіставляє префікс простору імен з каталогом, тому App\Services\Mailer розвʼязується у src/Services/Mailer.php. Composer генерує автозавантажувач з карти в composer.json і реєструє його через spl_autoload_register, тож класи підвантажуються при першому зверненні, а не підключаються вручну. У продакшені запускають composer dump-autoload --optimize, щоб зібрати статичну карту класів і не ходити у файлову систему.

8

Що таке XSS і CSRF? Як від них захиститися в PHP-застосунку?

Відповідь

XSS впроваджує виконуваний скрипт у сторінку — захист в екрануванні всього виводу через htmlspecialchars або подвійні фігурні дужки Blade плюс Content Security Policy. CSRF змушує браузер авторизованого користувача надіслати ненавмисний запит — захист у токені на кожну форму, що змінює стан, і куках SameSite. Ключова відмінність: XSS зловживає довірою користувача до сайту, CSRF — довірою сайту до браузера.

🦎

Прочитати відповіді недостатньо

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

Пройти інтерв'ю Middle PHP Backend →
Безкоштовно · 3 інтерв'ю на місяць

Інші рівні — PHP Backend

Junior PHP BackendSenior PHP BackendУсі питання PHP Backend

Інші спеціалізації

🔍Middle QA Manual🤖Middle QA AutomationMiddle Java Backend🐍Middle Python Backend🦫Middle Go Backend🟢Middle Node.js Backend⚛️Middle React Frontend💚Middle Vue Frontend🅰️Middle Angular FrontendMiddle Next.js