MVC - Control Class - Architecture / Design - Structure Review - PHP The client side version in JavaScript is here

This is the server side version of my control module.  How does the structure look.  

PostScript

Because this is a small prototype/app I have preferences or things I will consider when I will have a working prototype, they are - testing, try/catch/throw handling of errors, advanced abstractions / design patterns, defensive coding against programmer error / malicious users. Auto-Loading, optimization  Will add these later if the project matures. 

&lt;?php
function __autoload( $class_name ) { include 'class.' . $class_name . '.php'; }
$object_c = new CMachine(); 
$object_c-&gt;invoke();

class CMachine
{
    public function invoke()
    {
        $pipe = $this-&gt;getPipe();
        switch( $pipe['model'] )
        {
            case 'MUserNew': case 'MUserExist': 
                $model_object = new $pipe['model']( new SDB(), new SUniversals() , new SText( $pipe['page'] ), new SMessage() ); 
                $this-&gt;send( $model_object-&gt;invoke( $pipe['args'] ) );
                break;
            case 'MUserTry':
                $model_object = new $pipe['model']( new SDB(), new SText( $pipe['page'] ) );
                $test = $model_object-&gt;invoke( $pipe['args'] );
                $this-&gt;send( $test );
                break;
            case 'MUserAny': case 'MOrb': 
                $model_object = new $pipe['model']( new SDB() );
                $this-&gt;send( $model_object-&gt;invoke( $pipe['args'] ) );
                break;
            default:
                echo " -&gt; Undefined Module Requested";
        }
    }
    private function send( $string_send )
    {
        echo "|A|" . $string_send;        
    }
    private function getPipe()
    {
        return json_decode( $_POST['pipe'], true );
    }
}
Would separate those includes a bit differently. I'd use a newline after each include then use a double new line when I wanted to section them off. All one line as you are doing, and not even spaces between them, could make someone think that you have only three includes. Speaking of includes. You are loading all of these classes that you aren't going to use. Take a look a lazy initialization. Assuiming you only need to use those classes once in this class, and that is in that switch statement, then you can just include the correct one via case and avoid the overhead of those other unneeded classes.

Would have to agree with Corbin about this looking more like a dispatcher/router. These are okay, just letting you know that what you have isn't a controller.

Would suggest moving the send() method out of the switch. It doesn't really appear to change much and is just causing you to rewrite code. Assign whatever paramters you need to in the switch and just call the method outside of it. To prevent the default case from doing this, since you mentioned wanting to use try/catch, I would throw an error there instead of using echo.