Reviews Archives

Recently in Reviews Category

February 16, 2010

By Reza Muhammad

2 Comments, No TrackBacks

Playing Around with Habari

Habari Project is a relatively new Blogging Platform or Blogging software. The project started more or less two years ago, and the current milestone is at version 0.6.3. Habari claims to be different than other blogging platform, technically and non-technically. For more complete description of Habari, it is wiser to look at their website

Habari is written in PHP5, and uses PHP Data Objects (PDO) to connect to databases. My initial interest in Habari is their PostgreSQL support. I am using PostgreSQL in my server and since most of my applications already use PostgreSQL, I'm a little hesitant to install MySQL just for one blog. With the recent documentation hinting that Movable Type will drop PostgreSQL in the near future, I thought I might as well look at other blogging platform that has PostgreSQL support. And Habari offers this functionality.

Things I like about Habari are:

  1. PostgreSQL support.
  2. Simple Admin Interface.
  3. There are relatively many available plugins and themes.
  4. Creating custom plugins (and supposedly themes too, but I have not tried it) are quite easy.

The things I think they can improve on are:

  1. More plugins and themes (they are never enough, right?)
  2. Support for Categories (Habari only uses tags for each entry)
  3. Some kind of WYSIWYG editor when creating an entry.
  4. Documentation can use

My first impressions on Habari are mostly good. I do not find lots of bad things about the software other than they can use more contributors to speed things up. Technically, I like what they do. Creating plugin is quite simple, and their documentation on this area is passable to get you started. I've already started to create a simple plugin, and I like how simple it is.

Some Pictures

These are some screenshots to get you idea how Habari Admin page looks like.

Admin dashboard page:

Admin Dashboard Page

Admin Menu:

Admin Menu Hover

New Entry:

Dashboard New Entry

January 10, 2009

By Reza Muhammad

PHP Frameworks: So many options, few are sufficient

headache11.jpg

For the past few months I have been playing around with CakePHP. Most of the people who have used PHP frameworks have probably heard of it. CakePHP's features are quite good, and extensive. Their function names are quite self explanatory that I don't need to look at the API documentation very often. But after a while, I'm starting to look at its ugliness. I am now starting to try different frameworks to see which I like best. This article are some of the things I like and I dont like from each of the frameworks.

CakePHP

I found CakePHP to be one of the easiest framework to get started right away. Their documentation was quite helpful to get me going to start my first "simple" application.

However, the more I played with the framework, I started to feel like I was forced to do certain things because it was the "Cake way". One of their main features is "conventions over configurations". This might seem quite useful at first, but I've past that stage, and now I feel that feature is becoming more of a burden. Their conventions are very strict. For example, you need to have a model in a singular form, and a controller in a plural form. It's so strict that I didn't even know that "data" is a plural word of "datum". I thought data could be used as singular, and plural word. I even searched for it. It turned out I was wrong. This singular-plural-word thingy is not always useful for me since I'm not always developing application in English. In Indonesian, there is no such thing that differentiate singular and plural words.

Another thing I don't like about CakePHP is that their data validations are tied with the models. Sometimes you need to have different validations on the same model depending on the forms (assuming you have more than one form to do data manipulation on your model).

CodeIgniter

Next, I looked at CodeIgniter. I have to admit that I have never tried CodeIgniter, I've only looked at their documentation. My first impression was, their documentation is superb. That's also what I've been hearing from people who've used the framework. While skimming through their documentation, I noticed that the syntax and their idealogies are very similar to CakePHP, and I thought I would feel right at home.

Some of the noticable differences from CakePHP are CodeIgniter doesn't force you to have a model for each controllers you have, and data validations are located in forms. And I've also heard that generally CodeIgniter gives you alot more freedom (in terms of how you code) compared to CakePHP.

Another good thing I've heard about CodeIgniter is that it's very fast. Part of the reasons why it is so fast is because CodeIgniter doesn't use OOP on all of their codes, and this was said that it could gain performance.

However, out of all the good things I've heard about CodeIgniter, it doesn't have the "corporate" feel. Funny i feel that way since it is actually developped by a company called EllisLab. Another thing I don't like about CodeIgniter is that I have to "load" everything for each functions I create. I might be wrong on this, I've only looked at their documentation. But it seems that you have to call the template, and helpers everytime.

Symfony

Then, I continued my next journey to symfony. Some of the good things I've hear about symfony is that it's an enterprise-ready kind of framework. Having been used at various sites by Yahoo! and some other professional websites, I thought the performance would be good.

Then, I tried to search about its performance but I couldn't get a recent benchmarks. If you have any, please let me know. But from a one-year-old benchmark, symfony performed quite slow even though the test case didnt exactly prove any real life usage.

Symfony has a very extensive documentation, which they call "The Book". Alot of topics are covered thoroughly, my only gripe is their documentation structure since I'm not used to it.

Another thing I'm interested in Symfony is their CLI (Command Line Interface). Their CLI seems very powerful. You can generate codes (CakePHP's bake does this too), insert sql queries, and so on. Although at this point, I think they have too many features on their CLI.

The other thing I don't like so much about symfony is their extensive use of YAML for the configurations. I definitely choose YAML over XML for configurations, but there seems to be alot.

Zend Framework

Last but not least, I looked at Zend Framework. I've been avoiding to use Zend Framework because they don't look like a framework. It's been discussed very often that Zend Framework looks more like a sets of libraries that are ready to use. And I agree with that.

However, I finally tried it, and tried some of the examples given from the quickstart guide at their documentation, and I couldn't stop thinking, why do I have to go through all of this stuff just to get my framework up and running? Those things are creating directories (controllers, models, application, etc), .htaccess file, bootstrap file, index.php file, and more. My goal on using a framework is so that I can get my web applications done faster, but this itty-bitty work at the beginning turns me off.

The good side about ZF is that their collections of "libraries" are very complete. From creating RSS feeds to creating a Web service, they have it. And I find this very useful when I need to build a complex web applications.

Another good thing about ZF is, well, Zend. Who should be able to create a better software than the maker of the language itself? At least that's what I hoped for when I first heard about ZF. It is obviously not the best framework now, but it might change in the future.

Conclusion

After looking at these frameworks, I'm still having doubts which of the frameworks should I invest my time in. But these days, I'm leaning towards either Symfony, or Zend Framework, although Zend Framework probably has a bigger chance, only because it's developed by Zend. After all, if ZF will become a standard de-facto of PHP framework, it will be easier for me to look for programmers who understand ZF.

Also, I'm quite aware that most of the features of each frameworks I mentioned above can be overridden (for Example, validation in CakePHP, YAML in Symfony), but those are the default settings on their respective frameworks.

This post doesn't mean to be a flame, or anything, they are simply my point of view. This doesn't intend to "attack" any supporters of any framework they are proud of. Also, you should probably read this with a grain of salt :)


Scroll to Top