Personally last year was very interesting. Not necessarily successful, but enlightening on so many levels, that I am sure 2006 can only be a success. Now over the last few days I afforded myself the luxury (or torture) to look at other peoples code, besides pushing out one RC after another on MDB2 and related packages. Specifically I looked at some of the latest ActiveRecord, CRUD in no time, hyped up frameworks: QCodo, Cake and Symfony.
Now the first thing to do is to setup the given framework and to get some decent output. The only one that I was able to setup in a reasonable time was Cake. However even Cake failed some basics in the "how does the first wiff smell" test. Here goes a list of the issues I found to smell the worst.
- Use of short open tags, sorry thats a no go, this just means that its going to be a pain to setup on many hosts.
- Making you set some include path in several files if you are unwilling to pollute your php.ini's include path setting or hack up an .htaccess file to do equivalent magic (or worse suggest auto prepend, which I hate hate hate). I want things to be self contained with minimal effort.
- Putting anything but files that are supposed to be readable to the user in the public doc dir (like include files or even worse config files). A simple error in your configuration will suddenly give all sorts of critical information to the outside.
- Not following the php scene for other best practices (like not using persistant connections with mysql, or atleast making persistant connections the default in the config file). You cannot produce good code if you place yourself into your own little eco-system, you have to participate in the big pond.
- However the worst of them all is not making it possible to throw the source into any directory or requiring some virtual host setup. Like I said before I want code to be self contained and I want to be able to place it where ever I want. I do not want to pollute my global config files just to give some code a try. If this one is not supported its usually quite impossible to fix or very annoying (especially since it usually requires hacking on mod_rewrite rules which I hate hate hate).
Anyways, Qcodo failed on almost all of the above mentioned points. Symfony gets plus points for documentation and their CLI tools. I am currently trying to get the mod_rewrite to work if I do not setup a virtual host as they suggest in their 24 hour tutorial. I got the furthest with Cake so far. I found a few bugs in their latest beta (i had to fix issues with mysql5 in their scaffolding code) and so I am now on the latest trunk.
After I put out my own framework I discovered how hard it is to really pass everybodies "how does the first wiff smell" tests. For one people do not read documentation (this includes me). But even worse they have a tendency to do things different. How most annoying! So from experience I am sure that each of the above 3 mentioned projects work perfectly well in a perfectly sane setup or work methodology. They might even work in mine, if I would have read all their documentation. So do not flame me quite as badly if you feel I stepped on your project's toes .
Remember 2006 can only be successful .. atleast for me ;-)
Zweckoptimismus? Dass es eigentlich nur besser werden kann, das denk ich schon seit 2004. Wie auch immer, gesundes neues Jahr!
So schlimm war 2005 auch nicht. Wie gesagt .. war ne art Bildungsurlaub. Und die Jahre davor waren ja auch ok. Dieses Jahr geht es halt daran ein paar Sachen zum Abschluß zu bringen. Allen voran diese nervige Uni :-)
Have you published your own framework? As a download? I'd like to check it out!
Yeah, you can find information on it along with the source code links here:
well.. this post is quite old now .. but i just read it now.. so i wanna tell u that QCodo is by far the best of three... or should i say it has become the best now..
Go and see the updated site www.qcodo.com and watch the videos and you'll see how simple, to the point, and powerful QCodo is..
and it is really one of few true MVC framewors out there