Models in CodeIgniter are designed using the singleton pattern, which you are correct. Although this seems confusing to many people who are used to working with a more PHP OOP approach, there are several reasons.
The very first thing is that you can download the model only once and get it available in superglobal for use throughout the system.
This is the only real plus here, the rest are apologetic explanations.
CI was built in 2006 with PHP 4 support as a top priority.
This is just beginning to change now. EllisLab has dropped support for PHP 4 from CI 2.0, but for now it works.
You can, of course, download the model and then use any PHP 5 syntax that you like for your models.
$ this-> load-> model ('comment');
$ comment = new Comment (); $ comment-> text = 'hello'; $ Comment-> Save ();
source share