In true Magento confusion there are two sets of controller classes; Those in the
Controller directory and those in the
controllers directory. The former have names like
Mage_Adminhtml_Controller_Action and the latter are
Mage_Adminhtml_IndexController. The latter are normally descendants of the former.
Because the latter don’t cleanly map their names to their location in PEAR naming convention they don’t get autoloaded by the normal autoloader, you cannot
include them from your scripts since you cannot be certain which code pool they are in and it potentially breaks the compilation feature.
I feel because it’s so hard to extend them they should be officially
final and be done with it. Will this break anything I’m not thinking of? Is it bad practice somehow? Can anyone suggest better terms for describing the extendible classes and damn-hard-to-extend classes?