Overriding Magento controller

Hi there,

I’m trying to extend a core controller. Mage_Checkout_OnepageController to be precise.

My Module is called MagePim_Extends. So firstly I set up the routes:


// app/code/local/MagePim/Extends/etc/config.xml
<?xml version="1.0"?>
<config>
    <modules>
        <MagePim_Extends>
            <version>1.0.0</version>
        </MagePim_Extends>
    </modules>
    <global>
        <!-- extended blocks -->
    </global>
    <frontend>
        <routers>
            <checkout>
                <args>
                    <modules>
                        <Magepim_Extends before="Mage_Checkout">Magepim_Extends</Magepim_Extends>
                    </modules>
                </args>
            </checkout>
        </routers>
    </frontend>
</config>

Then the controller:


// app/code/local/MagePim/Extends/controllers/OnepageController.php

<?php
require_once "Mage/Checkout/controllers/OnepageController.php";

class MagePim_Extends_Checkout_OnepageController extends Mage_Checkout_OnepageController
{
	public function savePaymentAction()
	{
		echo "Hello World";
		exit();
	}
}


I clear the cache, then browse to mysite/checkout/onepage/savePayment, and I get nothing. If I put a product in my cart and go through the checkout process, it works fine, which leads me to believe that the original savePaymentAction method is being called. So the controller is not being extended. Magento isn’t seeing it.

I know the module is enabled, because the block extensions are working fine.

Can anyone shed any light onto this?

I’ve already tried a slightly different folder structure:

app/code/local/MagePim/Extends/controllers/Checkout/OnepageController.php, changing the controller class to MagePim_Extends_Checkout_OnepageController, and the XML to:



    <frontend>
        <routers>
            <checkout>
                <args>
                    <modules>
                        <Magepim_Extends_Checkout before="Mage_Checkout">Magepim_Extends_Checkout</Magepim_Extends_Checkout>
                    </modules>
                </args>
            </checkout>
        </routers>
    </frontend>


But again no joy.

Thanks in advance,
Mike