Vanilla 1.1.4 is a product of Lussumo. More Information: Documentation, Community Support.
Are there any frameworks, templating systems, or libraries that anyone has used? I thought we could discuss them and point out the pros and cons of each. This should help out everyone when it comes time to start a new project. Here are a few that I have used and my opinions on them.
CakePHP
CakePHP was very easy to learn and definitely cut development time way down (which is what a framework should do). I would definitely recommend it for small projects. It is based on the MVC pattern and models itself after Ruby On Rails. I like the way they have laid out the file system of the framework. It makes it very easy to find everything. It uses a single script to serve all pages and the page content is generated via a given models controller. Models are tightly coupled with a table in your database and creating a model is as simple as creating the table. CakePHP likes to do a lot of the work for you and will instantiate and objects related to the object you have instantiated. It makes it really quite simple.
On the negative side it does appear to be quite slow at times. If you are building a small site then it will not be that apparent. One of the problems I have found is actually one of the positives also. Say you have a forum and a User class. You would likely have posts associated with that user. If you create a link between your user class and your posts then you will instantiate every post that user has written when you create the User object. This is a simple example, and probably not a very good one, but you could see where it could go bad. There are obviously ways around this but it is not quite as apparent.
My first experience with CakePHP was with creating my blog. You can read more about my first impressions of it there. http://blog.jasonhoule.com/posts/view/6
Smarty
Smarty is a templating system. It helps you to separate your logic from your presentation layer. I absolutely have to do this. It drives me crazy having PHP code scattered throughout my markup. I find it very simple to use while I have read posts where people absolutely hate it. I think it is a very intuitive system and really like the ease of creating plugins and new functionality. Simply drop it in the plugins folder!
The are only two things I don’t like about Smarty. The first is the compiled pages annoy me. Yes, I know it is stupid but it just does. The second is that it errors if there is any Javascript embedded in the page. Again, it is stupid, I know. It is not even a real problem because all you have to do is surround your Javascript block with the Smarty {literal} tags and you are golden.
Scriptaculous / Prototype
I have not really used any PHP libraries other than those I have written myself, but I have experimented with a few Javascript libraries. I have tried MooTools, Jquery, lightbox, thickbox, and taken a quick look at DOJO and YUI. Some developers I know swear by YUI but it seemed quite bloated when I looked at it and the same goes for DOJO. I hear that Yahoo has taken steps to solve that problem and it is smaller and easier to use now. Moo Tools and Jquery I did not care for too much because the syntax gets a bit funky at times. For a light box effect, lightbox and thickbox are both very good but they do not do anything else. That leads me to Scriptaculous and Prototype.
I keep finding myself going back to these two because they are very easy to use and Scriptaculous has some very nice effects. Prototype can not make cross browser AJAX support any easier. It is as simple as Ajax.Request(). I have yet to see any problems with the cross browser support for these libraries. They are also very quick to make adjustments for new releases of browsers. I definitely recommend checking out both of them.
1 to 2 of 2