[eluser]Randy Casburn[/eluser]
As an example of what I mean:
In JAVA Swing, the MVC Design Pattern is called a Usage Model. It has been modified to the extent that the Controller and Model are somewhat mushed together. Really what has happened is the Controller has been replaced completely by a single Observer pattern that arbitrates the event management issues normally handled by a Controller.
In JAVA Struts on the other hand, there are actually two (2) interpretations of the MVC design pattern. One of them uses a single controller and the other uses two controllers working in conjunction with each other.
The most popular PHP frameworks oriented around the MVC design pattern commonly refer to a 'front controller' while instructing the developers to build the MVC Controller for the design pattern. This implies more than one controller.
In CI, by definition, codeigniter.php is a controller since it is responding the input from the user interface (the URI) and making choices (routes, hooks, etc.) based upon that input. We build secondary controllers based upon our needs.
All of this is academic and pointless since it doesn't help the OP -- Colin's attempt was meant to shed light on how CI accomplishes things. There is no one agreed definition of what the MVC design pattern means or how it is implemented.
There is no "true MVC".
If the OP wants to expose the framework he/she was making comparison to then we would be better prepared to make comparisons and point out the differences in implementations.
Randy