Перейти к основному содержимому

PHP — чек-лист

Разработчику Архитектору
Загрузка вопросов…

Чек-лист самопроверки

  1. Что такое PHP и для каких задач он предназначен?
  2. Как PHP взаимодействует с веб-сервером (Apache, Nginx)?
  3. Что такое SAPI и какие интерфейсы выполнения существуют (CLI, FPM, Apache module)?
  4. Как происходит обработка PHP-скрипта от запроса до ответа?
  5. Где и как задаётся конфигурация PHP (php.ini, .htaccess, ini_set)?
  6. Какие есть способы комментирования кода?
  7. Как объявляются переменные и какие соглашения по именованию приняты?
  8. Какие примитивные типы данных поддерживаются в PHP?
  9. В чём разница между == и ===?
  10. Что такое "ложные" (falsy) значения и какие они бывают?
  11. Как работает автоматическое преобразование типов?
  12. Какие есть составные типы (array, object, callable, iterable)?
  13. Что такое null и как он обрабатывается?
  14. Как работают условные конструкции (if, switch, тернарный оператор)?
  15. Какие циклы поддерживаются (for, foreach, while, do-while)?
  16. Что делают break и continue?
  17. Как объявляются и вызываются функции?
  18. Что такое переменное количество аргументов (...$args)?
  19. Как работают анонимные функции и замыкания?
  20. Что такое области видимости переменных и ключевое слово global?
  21. Что такое суперглобальные массивы ($_GET, $_POST, $_SESSION, $_SERVER и др.)?
  22. Как работают сессии и куки?
  23. Как обрабатывать загрузку файлов через форму? См. Загрузка файлов и валидация в PHP$_FILES, MIME, extensions и mimes в Laravel.
  24. Что такое автозагрузка классов и как она реализуется?
  25. Что такое Composer и зачем он нужен?
  26. Как работают пространства имён (namespace, use)? См. статью 157.
  27. Что такое класс, свойство, метод, конструктор?
  28. Как работают модификаторы доступа (public, private, protected)?
  29. Что такое статические методы и свойства?
  30. Как работает наследование и ключевое слово parent?
  31. Что такое абстрактные классы и интерфейсы?
  32. Как реализуется полиморфизм в PHP?
  33. Что такое трейты (trait) и зачем они нужны?
  34. Как работают магические методы (__construct, __get, __call, __toString и др.)?
  35. Что такое типизация в PHP (скалярные типы, возвращаемые типы, строгий режим)?
  36. Что такое union types и nullable types (через | и ?)?
  37. Как обрабатываются исключения (try/catch/finally)? См. Обработка исключений в прикладном коде PHP и Иерархия исключений в PHP.
  38. Что такое пользовательские исключения?
  39. Как работает работа с файлами (fopen, file_get_contents, fwrite)?
  40. Как сериализовать и десериализовать данные (json_encode, serialize)?
  41. Как подключиться к базе данных (PDO, MySQLi)? См. PDO в PHP — подключение и безопасные запросы.
  42. Что такое подготовленные выражения и зачем они нужны?
  43. Как предотвратить SQL-инъекции и XSS?
  44. Что такое атрибуты в PHP 8.0 и как их использовать? См. Современный PHP 8 — enum, readonly и атрибуты.
  45. Что такое стрелочные функции и где они применяются?
  46. Как работает оператор nullsafe (?->)?
  47. Что такое match и чем он отличается от switch?
  48. Как использовать именованные аргументы при вызове функций?
  49. Как писать и запускать unit-тесты (PHPUnit, Pest)?
  50. Какие инструменты используются для анализа и форматирования кода (PHPStan, Psalm, PHP_CodeSniffer, CS Fixer)?
  51. Что такое enum и readonly в PHP 8.1+? См. Современный PHP 8 — enum, readonly и атрибуты.
  52. Как связать форму и INSERT в БД без фреймворка? См. От HTML-формы до записи в базу данных на PHP.

Laravel

  1. Что даёт Laravel? (Первая программа на Laravel)
  2. Eloquent и миграции?
  3. Livewire и wire:model? (Laravel и Livewire)
  4. Filament — когда? (Laravel Filament — админ-панель)
  5. Sanctum — зачем? (Laravel API с Sanctum)