Ну вот программа минимум(!)
1. Убрал бы статические переменные. Вообще у тебя там куча кода статикой где не нужно намешана
2. Использовал бы нормальные структуры вместо массивов и множества аргументов методов
3. Перестал бы наследоваться от дефолтного контроллера когда это нахер не нужно
4. Вынес бы все адреса в конфиг
5. Сделал бы либу платформонезависимой и уже потом добавлял фичи под разные фреймы или один конкретный
6. Следовал бы PSR
7. Перестал бы использовать конструктор в каждом экшене. Это какой-то дикий трешак вообще. Особенно учитывая в нестатических методах.
8. DI и автовайринг ты послал лесом. Это тоже весьма забавно
9. В контроллерах перемешаны разные слои приложения. Это тоже надо надо бы на части разбить
10. Разбил бы методы на более мелкие, выполняющие конкретную задачу
11. Переписал бы часть условий в виде методов объекта
12. Написал бы нормальные энумы вместо вот этих ваших строк
13. Убрал бы нафиг флаги из методов
Простыми словами, поверхностно. Дальше уже надоело смотреть, если честно. Пропало всё желание. Многое зависит от рефактора базовых вещей. Судя по тому что я увидел, тут нет ни понимания работы ПХП, ни понимания ООП. Как можно после этого говорить о ООП я, если честно, не понимаю.
— Владимир Владимирович, сколько будет дважды два?
— Буду краток. Вы знаете, буквально на днях я был в Российской Академии
Наук, провёл беседу со многими учёными, в том числе молодыми, кстати,
очень грамотные ребята. Так вот мы обсудили, в частности и данную
проблему, поговорили о текущей экономической обстановке в стране; они
так же рассказали о своих планах на будущее. Конечно, в первую очередь
их волновала проблема востребованности; не менее остро встал и вопрос по
ипотечным кредитам, но могу заверить, все эти проблемы решаемы и мы
направим все усилия, чтобы решены они были в самом ближайшем будущем. В
том числе это касается и темы, затронутой в вашем вопросе.