I review and document some of my answers to the above comments about CakePHP, and some of them (in some cases correctly) accept errors.
Large websites run using CakePHP, some of which are Mozilla Addons, Scratch by MIT, and Hot Scripts. At the bottom of the CakePHP website is a large list ( http://cakephp.org ). Regardless, any good developer should be able to create a scalable website using a framework if the structure is not completely dumb (CakePHP is not too dumb: D).
It is true that there is not a single very good (free) CakePHP tutorial that goes through all the functions of the framework, but the documentation is very well laid out and described in detail. Anything that is not clear can be clarified through the Google group and the IRC, and we welcome any changes or corrections to the documentation. Documentation is not just the main problem with the developers, as many things are application-specific, and people come up with interesting tips and tricks, and therefore everyone is invited to contribute (not just a comment!). Of course, everything is moderated, so most of the cracks / spam is not added.
The code is modular because you can add new code that surpasses the core features. Most of the code is just PHP classes. It is true that writing such functionality can be a burden, and I have not tried using alternative classes as fillins. Yes, it does not handle other ORMs, so you are stuck with the default setting, but this should be fixed in Cake3, which will be able to mix and map any other PHP classes as desired (including Propel and Doctrine support).
The CLI is very good and easy to extend to support applications. One example is that I recently developed a shell plugin that would automatically install any other CakePHP plugin that I indexed from github. It took about 5 hours to build something extremely comfortable and flexible. I am sure that such functionality exists for Symfony, and it exists for RoR :)
Regarding Rails-like, it is, and it is not. Many things are similar, in any case, they are MVC structures, and CakePHP is for the "Agreement against configuration" approach. PHP4 supports mucks with a stronger syntax that Symfony undoubtedly has because of only PHP5 support, but it is still extremely useful and intuitive. The frame does not provide EVERY Rails function out of the box, as it is not a direct clone. CakePHP is a structure, not a library (hi Zend), so it won’t provide everything out of the box.
The generation of submissions, I agree, is a bit awkward in CakePHP. It is greatly improved in CakePHP 1.3 and 2.0. It will support custom templates for each model, view, and controller (as opposed to the view type as it is now). In addition, there is a set of shell tasks on github by a user walking on neilcrookes that automatically bakes only certain types of views (including only admin views), which can be used in combination with custom templates to get exactly what you want. CSS style also helps :), but it is definitely something that can be improved.
CakePHP uses many different Model :: find parameters in it, although in some cases it may be useful to use raw SQL queries. The Model :: find () method is very flexible and did not fail me to create complex finds. I believe that this is due to the comfort of working with ORM, which inevitably takes time.
Validation of the form should logically be at the model level, since any action related to the database is performed there. You can specify alternative validation in a specific view, in my opinion, or on swap checks (there is a behavior for this, but without it it would not be easy).
Multidimensional arrays are a bit stupid, but you still have multidimensional objects. PHP4 had a broken object model, so CakePHP does not use objects. This will be fixed in a future version of CakePHP (as I mentioned above in a previous comment), but in some cases it is useful to have a framework that supports PHP4. Again, YMMV and I agree that full PHP5 will be a great addition to application speed and development.
Databases can be changed as desired. CakePHP does not allow the use of functionality that is inherent in only one type of database (hence the rejected ENUM support, only in MySQL), so ORM is always supported and can always create reliable queries. You can have several databases in the application, one for each model, if you want, and you can change them as you wish or even not use the database at all for a specific model. Thus, no, it is not tied to a specific database.
In the end, your choice is your own, and I sincerely suggest looking at both and reading the documentation, checking groups, IRC channels, blogs and any forums for both and see which structure suits your development style., Reader be careful, I CakePHP developer, so my post has a bias.