Share |
Posted by Christof On March - 6 - 2011 16 Comments

There are so many other blogs on this topic and I’m not about to start another lengthy one detailing the pros and cons of each framework, which at the end still leaves you clueless, and these debates generally end up in a word battle, each candidate hoping to get the submission based on his bias opinions regarding his framework of choice.

I understand that having to learn a new PHP MVC framework takes a lot of time and energy and one need to be absolutely sure about the MVC framework you choose, you’ve heard about Codeigniter, CakePHP, Symphony etc, which one to choose!

The following pointers will help you make the decision… in saying this also understand that I’m bias towards the Zend Framework and I’m strongly advocating that you too should adopt it as your framework of choice.

5 Points to consider when evaluating a framework… making the Zend Framework choice is simple when you consider the following watch podcast:

  1. Who’s behind the framework: it is backed and endorsed by The Zend Company and IBM – no other PHP framework competitor is. The code base is constantly being updated, tested and maintained by a professional team of developers at the Zend company (the company behind PHP) – other frameworks cannot compete with this.
  2. The quality factor: the code base is of highest quality, fully standardized and professional coding practices are emphasized – not like other framework where things gets done in a magnitude of ways, creating a spaghetti mess of code and structure.
  3. Scaling and RAD: ZF is a glue framework, meaning you can use some or all of the components to model your system. You will find an arsenal of professional, production-ready libraries all built by the Zend Company for ZF to simplify development – not like a variety of ad-hoc, buggy 3rd party plugins etc. you’ll find in most other frameworks.
  4. Documentation & support: the Zend Framework documentation, bug track and tutorials (especially for beginners)are very impressive – this is probably the worst aspect of most other mediocre frameworks.
  5. Future prospects: looking for a professional PHP development job?, you will find that the majority of big companies are serious about Zend.
    Are you going to get familiar with a mediocre framework just to be let down a few years down the line when the 1 or 2 man-band developers realized their architectural skills and future vision weren’t that great and they now have to remodel the framework from the ground up, leaving you with a new learning curve and all your previous applications non backwards compatible…like what happened with Codeigniter v1.7 to v2.0 leap, best of all CI v2.0 is still not fully OO.

There you have it, its really a no-brainer – happy coding!

16 Responses

  1. Stefan says:

    As a mid level developer, and having used ZendFramework on an extensive basis I have to agree with Christof on Zend. To me it is a simple as this, no other framework allows the freedom and ease of work as does The ZendFramework. I strongly recommend ZendFramework to all my clients and so should you. Great Job Christof.

    • Christof says:

      Thanks Stefan,
      I’m glad you also had the enlightening experience.
      Unfortunately the reality is that most people resist change and prefer sticking to what they are familiar with, and not always realizing the grass is sometimes greener on the other side.

  2. Sheldmandu says:

    This is a very one sided view selling Zend framework. Zend is a good framework but is very verbose and spread across too many files so using without opcode caching isn’t recommended. Codeigniter is much simpler, but is missing many features, while Yii is somewhere in the middle, but from my experience unless you know OOP very well you might do the wrong thing with it as well. I wrote an extensive blog post about these.

    • Christof says:

      Thanks for the reply,

      People might see my view as one-sided, but evaluating a framework is really as simple as the above 5 steps, and I derived my opinions from a decade of experience with different technologies.

      If I had to advise a newbie on which programming technology to learn I would probably tell him to learn Java, why because if you know Java there will be very little need to learn anything else, you can do everything from website, desktop applications, mobile and more.

      The same vision goes for Zend Framework, why waste your time learning other backyard frameworks which cannot do most things ZF can.
      Why not learn ZF and know that you will almost never be in a situation where your framework just cannot deliver on the project requirement, or i.e. you end up in a situation where you have to integrate a ZF library into CakePHP or Codeigniter because they don’t not have the capability.

      Then again, Codeigniter, CakePHP etc. are probably more popular because novice programmers can pick it up more quickly, which is a bad thing because they will not learn professional programming practices, as per point 2 above.

      All the other remarks I’ve read on other sites about ZF performance issues caching etc. is absolute rubbish and just an ignorant attack to try and discredit.

      Bottom line is, no other framework is of the same quality as ZF, from an architecture and professional coding practices point of view as per points 1 & 2 above.

      • Jono says:

        Uh, not backwards compatible from CI1.7 to 2.0? Where did you get that nonsense from? It takes 5 minutes to convert a 1.7 site to 2.0.

        • Christof says:

          Jono,
          5minutes to convert an application is a very naive statement, however in the real world it will probably take you hours to days to convert a full application, testing included.
          Backward compatibility is not my biggest dislike with CI, its the fact that everything is still not OO and CI is still conducive to bad programming practices, global functions everywhere, classes when you feel like it, and not to mention the poor libraries and configuration management – if you want to be an activist for the smaller frameworks, then please be one for Yii and not CI.

          • Jono says:

            Converting from 1.7 to 2.0….its not naive. Its reality. I did it. Find and replace. Really.

            Yes, there are drawbacks to CI. But I wasnt arguing about that.

      • Rohjay says:

        I’m a newbie to web development and the question of “which framework” is on my plate right now. I also find this to be a one sided view.

        In this debate, one of the down-sides to the Zend Framework is that it has performance issues – I don’t have a huge budget for web hosting and it’s a concern. Dismissing these concerns by saying it “is absolute rubbish and just an ignorant attach to try and discredit” is a defensive statement with zero information behind it. Are you being defensive for a reason?

        If you’re a smart guy (and I think you are), don’t discredit yourself with such an openly slanted view on things.

        To better days!
        Rohjay

        • Christof says:

          Rohjay,
          feel free to choose any of your own opinions as the correct one.
          Regarding ZF performance, I suggest you read this ZF Fast

          “Seconding Joe’s answer. I’ve also seen ZF deployed on a few sites handling millions of requests and have yet to encounter a problem. When dealing with that amount of traffic it’s a good idea to use other strategies beyond your framework, including but not limited to caching and the use of a CDN.”

          As I’ve stated before, any framework will be slow if coded by amateurs, and almost all frameworks and large systems these days deploy caching, CDN, Cloud or other load balancing techniques.

  3. Pooya says:

    Hey
    I like the way you think about how to choose your MVC framework, it’s like 5 steps and done. I’m a newbie PHP programmer who found myself fighting over designing a website.
    I’m studying computer science and have a part-time job in 10 persons company.

    IBM is behind it, point 1. Well I started using Drupal 6 with whole crap of hooks and a hard learning curve. I learned programming best practices and like millions of other cool stuff in community. Then I designed a CMS based on drupal for my company with a start-up theme and stable modules.And now drupal 7′s out and the whole system’s different, so I’ve got to upgrade the whole CMS crap I’ve made to 7 if I rly need to work more on it.

    And now I’m asking myself, it’s been like a year of my life over this learning things like hook names and bla. I’ve got a lots of experience in field but what if I needed to migrate to another big company in future? I’m 21 and like what, I’m gonna waste my whole life over drupal? Maybe CI or Yii? And face the same problem again and again…

    Let me get this straight, I just need choose one framework and close this. Although I’m still gonna try all the frameworks for like 2 weeks and have an overal view.

    And what’s important for me about this decision is the future! You talked about job opportunity, and “like what happened with Codeigniter v1.7 to v2.0 leap, best of all CI v2.0 is still not fully OO” which made me write this comment. Depends on my story and problems you think ZF is the way to go?

    Thank you for your time :) I enjoy reading your articles and blog

    • Christof says:

      Hi,
      thanks for the comments.

      Yes I definitely think Zend Framework is the best (PROFESSIONAL) long term investment, not only because of the above 5 reasons, but also keep in mind that many companies also use other IBM and Zend products which is closely coupled with ZF.

      The reality is that you will have encounters with other technologies and platforms in your career i.e. CakePHP, Magento, Drupal etc. So one can never know enough and we’ll remain students until the day technology stops evolving, which will never happen.

      Good luck.

  4. Awesome post. I am actually ZF developer and I must say that I was just curious what is CI like (a lot of talking around this framework). Like mentioned above I have decided for ZF because of companies behind it. I must admit it has a hard learning curve, much more as I was expecting and I have a solid OOP knowledge and experiece with PEAR. But I must say it was worth it :D

  5. Vanina says:

    Thanks Christof for your comment into my blog post (sorry I did not reply so far).

    I just would like to mention that the embed comparison table you have seen is completely opened and collaborative (you can add comparison criteria…) so do not hesitate to join us to improve it (by the way, you should vote for Zend framework since you think it is the best one):
    http://socialcompare.com/en/comparison/php-frameworks-comparison

    Thanks!

  6. gigi says:

    Thanks for this awesome post! It definitely opens my mind on the eternal choice of the best framework… I vote zfw now!

  7. rjm says:

    I’m a new to PHP frameworks and as most people say this view seems one sided the largest point deterring me from Zend is that is doesn’t focus on rapid application development as much as other frameworks do. Isn’t the point of a framework to get things done faster? I’ve read comments on people saying at times it can be counter productive and is a lot slower compared to other frameworks. Right now I’m just lost between, Zend, Codeigniter and Yii.

    • Christof says:

      Hi,
      As for ZF and RAD, sure I agree CI and Yii is perhaps more RAD frameworks, but remember its not always about RAD, ZF has many other superior benefits.
      ZF is better suited for medium-large enterprise solutions, ZF is not like most frameworks, with a “one size fits all” mentality.

      Have a look at the arsenal of high-quality, fully tested libraries available for ZF, you will have virtually no need to reinvent the wheel or waste time debugging 3rd party libraries – again a huge time saver.

      ZF2.0 is addressing a lot of RAD concerns and I’m sure you’ll love it!

Leave a Reply

Featured Posts

How to avoid “spaghetti mess” co..

I believe all programmers found themselves caught in this situation at least once… the dreadful ...

freelance web development vs full-ti..

I quit my full-time job in August 2010 -  I’ve been doing full-time freelance Web ...

Zend Framework vs Codeigniter vs Cak..

There are so many other blogs on this topic and I'm not about to start ...

How to eliminate creative block..

Yet another article on the dreaded phenomena, creative block! I’ve been suffering from this quite a ...

jQuery active link, active page..

I was recently asked to set the current page hyperlink (button) active, I did not ...

Zend Framework new era..

PHP has come a long way over the past decade and is still the most ...

Google interrupts natural progressio..

Is Google (and other SE's) hindering natural technological growth? I think websites would have looked somewhat ...

Magento Pros and Cons..

I've been involved in a 4 month, extensive Magento development, during this time I got ...

Resources