Is my first MVC architecture set up to standards?
MVC approaches differ between languages, platforms and frameworks. They are usually termed "MV* frameworks" because they don't exactly follow strict MVC. But we call them MVC nonetheless.

Separate core logic from configurable logic

The way I understand your code, it looks like you've gone over CodeIgniter (or something similar). I assume all your requests run through index.php where the initial logic runs, like the helper loading, routing etc. For that, I suggest you separate the autoloader list and routing list to different files. You can load them via something like include. That way, you don't accidentally modify the core logic.

// autoload.php
$autoload = array(
  'autoloadCore',
  'autoloadController',
  'autoloadModel'
);

// routes.php
$routes = array(
  '/'       =&gt; 'Index',
  '/signup' =&gt; 'SignUp',
  '/login'  =&gt; 'Login'
);


Additionally, the word "Controller" might not be necessary for the routing. You already know that they always go to controllers. You might want to do that in the underlying logic instead, and keep it easy on the configurable parts.

Route lists cons

One thing to note with this routing strategy is that whenever you add a controller, you always need to list down the route. This approach is not that nice, especially when you are going to be handling a hundred routes (and trust me, it ain't a walk in the park).

Auto-route + custom routes

Why not automatically look for controllers based on a predefined convention (like CodeIgniter). A route of /foobar/bam would route to FoobarController and execute the bam method. As for custom routes, you can map it like so:

$routes = array(
  'autobam' =&gt; 'foobar/bam` // A route of `/autobam` executes the same as `foobar/bam`
);


And the flow goes like:

- Parse route
- Check for match under custom
  - If match, convert to equivalent route
- Use non-custom/equivalent route for locating the controller
  - If none, throw error
  - Else, load and execute