- отчетливо понимать этапы выполнения программы "Парсер - Компилятор - Рантайм", понимать, что PHP - компилируемый язык
- уметь объяснить слова "динамическая нестрогая типизация"
- знать, что такое переменная, константа (глобальная и в классе)
- иметь представление об областях видимости, глобальности и локальности имён
- знать, какие типы есть в языке, помнить о неочевидностях при приведении и сравнении разных типов (типа "1" == "01")
- иметь представление о приоритете операций
- понимать, что в PHP всё является выражением
- булев тип и операции над ним, разница между &&, & и and например
- знать несколько самых нужных строковых функций
- уверенно работать с массивами, знать самые востребованные функции, не пугаться большой вложенности
- уметь получить данные из $_POST, загрузить файл (или несколько сразу) через $_FILES
- уверенно владеть файловыми операциями, понимать концепцию "всё есть файл" и иметь представление о правах на файлы
- знать все циклы и управляющие конструкции языка кроме goto
- понимать, зачем нужны пространства имён
- уметь написать автозагрузку для своего проекта, знать о существовании стандартов на автозагрузку
Объектная модель PHP:
- наследование и модификаторы доступа
- разница между статикой и динамикой, смысл в статических свойствах и методах, хотя бы на примере ORM
- позднее и раннее статическое связывание
- интерфейсы и трейты, как обход отсутствия множественного наследования
- абстрактные классы с реализацией методов
- класс, как тип, instanceof, класс-хинтинг, опять же тут интерфейсы
- магические методы на примере конструктора, __get, __set, __call
- исключения - понимание темы и хорошие примеры использования
Паттерны проектирования:
- MVC
- ORM
- ActiveRecord
- Depedency InjectionПрочее:
- PHPStorm уже фактически обязательно
- знакомство хотя бы с одним современным фреймворком
- умение пользоваться composer
- аккаунт на гитхабе, что подразумевает хотя бы начальное владение git в обязательном порядке
- в плюс будет linkedin или еще какая-то профессиональная сеть