думаю, принципы ООП не доступны в статических методах хотя бы потому что статические методы не имеют никакого отношения к обьектам. Статический метод - эелемент класса. Соответственно это просто функция, не имеющая отношения к состоянию обьекта, ничего в себе не инкапсулирующая, кроме как некий алгоритм изменения данных.
ExtendedClass сделан возвращаемым типом в реализации метода modify() для того, чтобы можно было в цепочку добавить метод, присутствующий только в ExtendedClass. Иначе будет ошибка компиляции из за отсутстия метода в классе AbstractClass. За генерики спасибо, посмотрю.
каталоги тоже можно обходить без рекурсии — просто все найденные каталоги дописывать в конец массива, и на каждой итерации брать каталог с начала массива. Цикл запустить до момента пока в массиве чтото есть.
я так подозреваю не по 400 ре а 400 ре на баланс забросить чтобы баланс был не нулевой. а минимальный платеж для забрасывания составляе 50 грн или 400 р.
возможно я не правильно выразился, постараюсь уточнить: чем шаблонизаторы на пыхе, не использующие нативного синтаксиса пыха, лучше и удобнее использующих его. Это я в огород Smarty, Quicky, Blitz и им подобным камень бросаю. Как по мне количество букв для вывода переменной не является аргументом, я быстро печатаю. Иногда еще приводят в аргумент то что дизайнер не должен учить php, но при этом его заставляют учить синтаксис шаблонизатора. Хотя может я давно не в теме, я Zend'ом пользуюсь