Hey Shaggz, if you wouldn't mind posting a super quick review of code igniter I would really appreciate it.
Alright. Quick blurb on Cake vs Code Igniter.
Based on what I saw on the 3 video demos (and a 6 page "cake vs CI" thread on the code igniter forum), 80% of the same MVC functionality is in both frameworks. Both have the model, view, and controller folders. Both have the same methodology of mapping a URI segment to a function in a controller (say, w w w.sample.com/blog/output -> MAPS TO -> function output() in "/Controllers/blog.php" ). Both have nice helpers to use while building your view pages (from what i saw, CI may have a small advantage here).
Differences......
It looked like the code igniter scaffolding allows you to work with your models (insert test data), but they don't output any scaffold php files for you to begin working off of (like cake's 'bake' does). I may be wrong on this, but from what i saw on the vid demos, no code was autogenned.
Active Record (database interaction). Code Igniter uses some great syntax, and addresses one of the issues i mentioned above. Specifically, they allow a database query and data access like:
Code:
// find person with last name of 'Thomas'
$this->db->where("lastName = 'Thomas'");
$person = $this->db->get("person");
echo $person->lastName;
echo $person->firstName;
The approach above is much more intuitive to working with data objects than cake's associative array approach.
What CI didn't have was any data relational capabilities. In cake i could define that a "person 'has and belongs to many' usergroups" in cake, and cake would automatically execute the multiple queries to populate my person's usergroups. However, in CI, you have to manage writing these sql queries yourself. If one is working with a complex database structure, cake may be the viable answer.
One weakness to the above fact is that cake's ORM support in active record does contribute to making it much slower than CI. CI is a lighter weight solution and that should be taken into account.
CI looks to be a bit easier to learn than cake. The syntax is more easily read. Plus, the documentation appears to be a bit more robust from a beginners standpoint.
In the end, i feel i could have built any of my 3 cake sites in CI. I would say one of them (simple DB model) would have been faster to build in CI. I know one (complex DB relationships) would have faster in Cake. It all comes down to what your requirements are and which framework you can pick up faster (or already know).