Да, вы делаете там несколько вещей неправильно:
вам действительно не следует совмещать контроллер и просматривать обязанности без веской причины (часть "почему" немного сложна, выможете прочитать об этом здесь позже)
вам следует прекратить злоупотреблять ключевым словом static
- эти статические классы на самом деле являются старым хаком для "функций пространства имен" из pre php5.3 возраст: это не ООП, это процедурный код
прекратить использование ?>
в конце файлов классов: это необязательно и приводит к ошибкам «заголовок уже отправлен»
Что касается основной проблемы: вам не нужно обращаться к глобальному загрузчику , а вместо этого передавать шаблонизатор (в данном случае: Twig_Environment
) какзависимость.Вы можете увидеть очень упрощенный пример на практике здесь .
Если вы будете использовать Twig для шаблонов, то на самом деле не существует более упрощенного способа инициализации всего этого (даже если вы прибегаете к процедурному коду).И все «загружается слишком много вещей» - своего рода ерунда, так как в производственной среде большая часть вашего кода окажется в кеше OpCopde (вы можете гуглить это), а начиная с PHP 5.5 простая инициализация класса является очень дешевым процессом.
Что касается ООП в целом: просто просмотрите список лекций, перечисленных здесь : P
... это закончилось скорее как подробный комментарий