Thank you for writing this up, Sean.
I have investigated this myself and found exactly what you found (mainly
concerning CakePHP). Maybe with the exception of Console (or rather
Bake)
support in CakePHP. I specifically tried to contribute to this and was
really annoyed at the maintainers of the project. Without going into
details they were very (overly) defensive about their project. I tried
to
DRY up the source code a bit and that was not at all what they wanted.
Especially the project lead PhpNut_. So we got into an hour long
discussion
(in #cakephp) with the result of me deciding not to waste anymore time
with
CakePHP It was just too hard for me to contribute.
Also, since they try to emancipate themselves from Rails, you cannot
really
argue like “but Rails does it that way, could we do something like that
in
CakePHP?”. You will only get answers like “don’t you dare bring up Rails
here” or “oh no, he mentioned the R word”. This really turned me off.
It is funny. If you are like me and like to use both you seem to get
heat
from both sides of the fence…
Back to the Integrated Testing question, I think the lack of
documentation really killed CakePHP for me. We had the answer as “No
testing at all” until we ran into it by accident. As of last week,
there was NO mention of testing in the online docs at all.
This was the biggest issue for me, too. Actually you can formulate this
even broader. The part of Rails which tries to bring you to use better
work
practices is almost completely missing from CakePHP. Be it testing,
structure or the other many little things that Rails does. But this is
missing in almost all (I know of no exception) RoR wannabes.
I tried to talk to them about this, too, but there was actually no
understanding of why you would need that. I got the feeling that they
actually didn’t quite know what I was talking about. This probably stems
from the fact the core CakePHP team has not actually used RoR
extensively
enough to know what all is done in RoR and what of it could be used to
make
CakePHP better. When it comes down to it, this is the main issue which
is
responsible for all other shortcomings of CakePHP or any other RoR
inspired
php framework. RoR has gotten so huge that you can’t easily replicate it
in
another language with major effort in both worlds.
My current php favourite is http://www.codeigniter.com/. They have some
good documentation. And their goals are in line with mine. From their
website:
Who is Code Igniter For?
Code Igniter is right for you if:
- You want a framework with a small footprint.
- You are not interested in large-scale, monolithic libraries, like
PEAR. - You need broad compatibility with standard hosting accounts that run a
variety of PHP versions and configurations. - You want a framework that requires nearly zero configuration.
- You want a framework that does not require you to use the command
line. - You do not want to be forced to learn a templating language.
- You need exceptional performance.
- You eschew complexity, favoring simple solutions.
- You need clear, thorough documentation.
They have very good video tuts, too.
-Sascha E.