I recently evaluated several PHP framworks for a large team-based project, and wanted to share some of the results. Those evaluated were: Yii, CakePHP, CodeIgniter, and SevenKevins. The latter is more of a “kit” for building your own framework.
The size of the code base for each of these is interesting:
Yii - 13.6Mb, 1698 files in 336 folders
CakePHP - 7.75Mb, 774 files in 352 folders
CodeIgniter - N/A (another person did this one)
SevenKevins - 792Kb, 187 files in 306 folders
Other than 7kevins, those look pretty hefty. How much of the framework is actually used in a bare-bones web page? To answer that question, I created a simple page that displays the classic “Hello, World” string plus the results of memory_get_usage( true ). Here are the results:
I wasn’t able to get a count of file hits, but I’d bet that Yii is the “winner” there, too.
Any thoughts on this? I think that simpler is better, so we’re going with 7kevins because it allows us to build out the framework as we need it without all the general-purpose things that we don’t need but that are brought in as extra baggage.
256kb (which is only that high because I’m guessing it’s an internal allocation by php).
The problem is, it’s apples and oranges. What you get with a framework is a feature set. Try developing my hello world script into a fully fledged site. It will take a lot more work than using an existing framework.
You can’t judge a frameworks worth on memory usage alone.
Counting the number of files is a pretty poor way to make a decision on which framework to use. I have never even heard of SevenKevins, don’t know anyone using it, and the documentation is severely lacking (I just looked through it). What does it offer that the other frameworks you mentioned do not have? Any real advantages?
Exactly Czaries. Yii has been very promising for me and is easy and nice to use. It doesn’t seams to have too many of the problems that other frameworks I have looked at has. However many people swear to codeignitor and zend as well.
It all really depends on the kind of project you need to do, and one is not really better than another as there is so many different parameters it is impossible to really tell which one is a better framework.
If you want it simple, just use a library instead.