Это было бы ужасно.
Если вы вернулись назад во времени возможно , вы могли бы обосновать объявление этих контроллеров окончательным, чтобы избежать проблем, о которых вы говорите, но внесение таких изменений значительно увеличило бы сломайте большое количество установок Magento в дикой природе.Существует множество случаев, когда расширение базовых контроллеров для новых функций магазина (или даже переопределения / перезаписи) является правильным шагом.Теперь сделать их окончательными означает, что вы не только разбиваете приложения, но и разбиваете их так, что их невозможно восстановить.
Даже если вы вернулись в прошлое, я не уверен, что ваши разочарования (хотя и понятные) выдержатв качестве причины
Нет автозагрузки
Это больше похоже на исправление и / или добавление дополнительного автозагрузчика
Невозможно включить их в ваши скрипты, так как вы не можете быть уверены, чтопул кодов они в
Я не уверен, что следую за проблемой здесь.Включение базового контроллера так же просто, как
require_once('Mage/Catalog/controllers/CategoryController.php');
Нет, вы не уверены, в каком пуле кодов они находятся ... и это нормально.Смысл пулов кода в том, что у них есть резервные пути включения PHP, которые позволяют пользователям использовать собственную версию определенного класса, если это необходимо, без разрушения ядра.
Потенциально нарушает функцию компиляции
Я не знаком с описываемой здесь проблемой, но опять-таки, это больше похоже на случай расширения / исправления функциональности компилятора
Создание классов контроллера как final
для решения этих проблем было бы похоже на использование базуки для решения проблемы с домашними мышами.Причина, по которой у нас есть классы контроллеров, заключается в том, что другие URL-адреса нашего приложения могут наследовать функциональность.Даже если вы не верите в это для проектов, в которых вы являетесь архитектором, отнять это после предоставления - это, в лучшем случае, плохой шаг.