Junior Web Developer или что нужно знать для устройства на работу. Часть Вторая.

В первой части я описал лишь самые основы которые должен знать любой разработчик php приложений. В этой части я затрону тему ООП или что конкретно нужно знать начинающему php разработчику для устройства на работу.

PHP OOP.

1)Понимание что такое классы и объекты.

2)Понимания что такое свойства и методы класса.

3)Область видимости свойств и методов. public, protected, private.

4)Статические свойства и методы класса. Излюбленный вопрос - "При вызове статического свойства или метода создается ли объект класса?" и боле изощренный "Что происходит при вызове статического метода или свойства."

5)Конструктор класса. Что это такое, зачем нужно. Плюсом будет знания деструктора класса.

6)Магические методы, getter и setter.

7)Основные парадигмы. Наследования, полиморфизм, инкапсуляция.(про них подробнее)

8)Наследования. Что это такое, где применяется, для чего. Сюда же отнесутся абстрактные классы. Излюбленные вопросы - "Можно ли создать объект абстрактного класса?", "Сколько раз можно отнаследовать один класс ", "Будут ли доступны методы класса родителя в классе-ребенке?"(вопрос с подвохом)

9)Полиморфизм и интерфейсы. Что это такое, где применяется. Обычно просят привести пример. Сюда же могут задать вопрос. "Сколько интерфейсов может иметь один класс", ну или в таком духе.

10)Инкапсуляция. Что это такое, где применяется, примеры.

11)MVC. Что такое, контроллер, модель и вид. За что каждый из них отвечает. Где писать логику обработки приложения.

Далее, что будет жирным плюсом если джун будет это знать.

1) Autoloader. Что это такое, что он делает и как устроен.

2) Bootstrap. За что отвечает данный класс. Зачем нужен.

3) Любой или совокупность шаблонов/паттернов типа Abstract Fаctory, Singleton, DI и т.д. Если назван хоть один, то попросят объяснить зачем он нужен и чем занимается.

В обще говоря, когда дело доходит до OOP работодатель хочет услышать именно про MVC, И основные парадигмы. Остальное задается рандомно и по ситуации, если работодатель сомневается в полноте знаний интервьюера. Лучшей практикой, будет назвать под конкретную парадигму какой нибудь паттерн или шаблон с пояснением, тогда вопросов по OOP будет в разы меньше.

Далее не маловажный аспект это работа с каким либо mvc framework'ом. Например zend 1 или 2, cakephp, symfony2, Yii. По своей структуре они похожи и изучив один, следующий изучить будет в разы легче.

От себя советую прочитать "PHP объекты, шаблоны и методики программирования"(Мэтт Зандстра). В этой книге вы найдете ответы на все вопросы по ООП в PHP, в примерах и даже больше.

Следующая часть будет посвящена html css js, попросту говоря frontend'у.

Первая часть. http://pikabu.ru/story/_2355961