Что должен знать middle PHP разработчик?
Очень интересную вакансию получил на днях,  на мой взгляд она в какой то мере описывает то, что должен знать мидл.- писать хороший код на PHP от 2 лет;
- знаешь для чего нужны интерфейсы в PHP
- у тебя есть опыт проектирования MySQL, понимание механизма оптимизации реляционных баз данных этого типа;
- используешь концепции ООП, а не пишешь лапшекод;
- знаешь основные паттерны проектирования
- умеешь разбираться в чужом коде;
- знаешь о замыкании в JavaScript и как красиво написать рабочий код;
- применял AJAX и периодически его используешь;
- знаешь как писать юнит-тесты и когда их писать целесообразно;
- знаешь о dependecy injection и почему он нужен для повторного использования, масштабирования и тестируемости;
- понимаешь, чем ActiveRecord со связями отличается от традиционного, фаулеровского, ActiveRecord
IMHO то что надо знать большинство отличий/нововведений 2-3 последних мажорных версия PHP (и уметь их правильно использовтаь)знать один из фреймворков (ZF2, Symfony2, Laravel4/5) на уровне полного понимания внутренней работы фреймворка (на каких паттернах построена та или иная часть системы, почему именно на них, как это все взаимодействует и т.д)знать как работают реляционные СУБД т.е понимание JOIN'ов не только, что куда лепить, а и как это происходит внутри, ну и с остальными функциями так жену и в конце то концов разобраться с SPL,  что бы не было ситуаций как на PHP UK Conf.JS - понимать как там все внутри крутиться, вертится. Желательно знать еще какой то фреймворк (Angular, backbone, etc)HTML, CSS - по вкусу (не считаю, что php программист должен быть крутым верстальщиком, но одно другому не мешает и если нравится то это только плюс будет)Знать English, что бы стыдно на митинге не былобыть адекватным, вменяемым человеком
Если интересно, есть статистика с сайта hh.ru, что сейчас требуют по вакансиям от PHP разработчиков: ссылка.