Error after successfull patch SUPEE-5994: Class 'Mage_Install_Controller_Router_Install' not found

Have you switched off and cleared compilation?

via the console/ssh you can use

$ php -f shell/compiler.php -- disable

$ php -f shell/compiler.php -- clear

$ php -f shell/compiler.php -- compile

$ php -f shell/compiler.php -- enable

might need the fourth line...not sure.

It might be a problem with the line that comes before the code you showed

$routersInfo = Mage::app()->getStore()->getConfig(self::XML_STORE_ROUTERS_PATH);

Note: I had a similar problem where the admin was blank, however that turned out to be a file in a module that was overriding one of the core files - but this is not in your case. Just in case others look at this with that issue.


If you've disabled the compiler and cleared the cache and you still run into the error

Class 'Mage_Install_Controller_Router_Install' not found

Check to see if the file app/code/core/Mage/Install/Controller/Router/Install.php exists.

When you ran the patch, the directory Router didn't exist in app/code/core/Mage/Install/Controller and so the Install.php file did not get created despite being told otherwise in the applied.patches.list file. This means you're missing a class and you get the message:

Fatal error: Class 'Mage_Install_Controller_Router_Install' not found

Excerpt from the applied.patches.list for the supposedly successful patch installation that fails to create the Install.php file:

patching file app/code/core/Mage/Install/Controller/Router/Install.php
patching file app/code/core/Mage/Install/etc/config.xml

The patch creates the following addition to the app/code/core/Mage/Install/etc/config.xml file which references the missing file:

 <default>
     <web>
         <routers>
             <install>
                 <area>frontend</area>
                 <class>Mage_Install_Controller_Router_Install</class>
             </install>
         </routers>
     </web>
 </default>
 <stores>
     <default>
         <web>
             <routers>
                 <install>
                     <area>frontend</area>
                     <class>Mage_Install_Controller_Router_Install</class>
                 </install>
             </routers>
         </web>
     </default>
 </stores>

Sample of what the missing file app/code/core/Mage/Install/Controller/Router/Install.php is supposed to contain.

<?php
/**
 * Magento Enterprise Edition
 *
 * NOTICE OF LICENSE
 *
 * This source file is subject to the Magento Enterprise Edition End User License Agreement
 * that is bundled with this package in the file LICENSE_EE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://www.magento.com/license/enterprise-edition
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to [email protected] so we can send you a copy immediately.
 *
 * DISCLAIMER
 *
 * Do not edit or add to this file if you wish to upgrade Magento to newer
 * versions in the future. If you wish to customize Magento for your
 * needs please refer to http://www.magento.com for more information.
 *
 * @category    Mage
 * @package     Mage_Install
 * @copyright Copyright (c) 2006-2014 X.commerce, Inc. (http://www.magento.com)
 * @license http://www.magento.com/license/enterprise-edition
 */

class Mage_Install_Controller_Router_Install extends Mage_Core_Controller_Varien_Router_Standard
{
    /**
     * Check if current controller instance is allowed in current router.
     * 
     * @param Mage_Core_Controller_Varien_Action $controllerInstance
     * @return boolean
     */
    protected function _validateControllerInstance($controllerInstance)
    {
        return $controllerInstance instanceof Mage_Install_Controller_Action;
    }
}