Zend Framework – good for beginners or not?

October 14, 2008 – 8:56 pm Tags: ,

I’ve heard some inexperienced PHP programmers say that Zend Framework is confusing to them. Until today, I have agreed: Zend Framework has a lot of classes and some of them are quite complex (such as Zend_Form). But does that actually make it more difficult for inexperienced programmers than other frameworks?

Other frameworks have a lot of things to learn, just like ZF. While there are alternatives such as Cake or Symfony, which are said to be easier to work with, you would still have to learn a lot to be able to use them efficiently. Some say the documentation for other frameworks is better, and while it is true that the ZF manual is a bit lacking in some more complex topics, I think the issue is mostly in the reader: Zend Framework’s manual is very technical in some points, which may be confusing, and the parts that the manual doesn’t cover could easily be learnt by examining the framework’s code.

Zend Framework’s redeeming quality is its architechture – you can pick a framework feature you want and use that, and only that. This way you can introduce Zend Framework to junior developers step by step, class by class, without overwhelming them with everything they have to learn at once.

We’ve been developing some PHP applications at The Group, and while I’m the most experienced programmer there, I have the least free time to work on that project. However, we have several less experienced PHP programmers, who I’ve been helping to learn ZF. They initially thought it was going to take forever, but we’ve used some classes, such as Zend_Auth and Zend_Session, and they learned them quite easily. They can do the coding the way they’re used to and actually get things done, and gradually adapt classes from ZF to help them. The eventual goal is to help them improve enough, and finally migrate their applications to Zend Framework’s MVC architechture, or at least maintain ZF apps, as The Group is a volunteer organization and programming may be just a hobby for some.

While this would require one programmer familiar with the framework, I think it eventually has more benefits. After the other programmers learn it, they hopefully should understand the concepts much better, and should be able to utilize the framework and study it on their own. With some other framework, it could be that while they could initially use them better on their own, they may not completely understand what’s going on behind the scenes. That could, for example, limit their abilities to debug a problem in their code.

Share this:

RSS feed Subscribe to my RSS feed

About the author

Jani is a 15 year veteran of the software industry. He's currently available for consulting

  1. 16 Responses to “Zend Framework – good for beginners or not?”

  2. We hope that ZF is a black box that can easily be opened if the developer needs to know implementation details, such as debugging an error that originates in ZF code. Our coding standards call for clean code that is fully commented.

    In any case, I hope ZF treats you well!
    ,Wil

    By Wil Sinclair on Oct 14, 2008

  3. Well, Ive always questioned why the Zend Framework is called a ‘Framework’. For me its a set of re-usable libraries that you can use within your project (and as you said – you can pick the feature you want to use and only use that).

    If you compare that to Symfony or CakePHP – they both enforce a specific programming style, and several design patters on the applications you program – regardless of what libraries you use.

    I would say Symfony and CakePHP are true frameworks – Zend is more a good bunch of PHP Libraries or classes you can use. You would often see many Symfony developers use it with Zend libraries.

    By Sherif on Oct 14, 2008

  4. I think our new Zend_Application and Zend_Tool proposals might make ZF seem more like a “framework” to those who currently consider it a “component library”. Actually, I don’t think the two aspects are mutually exclusive. Zend_Tool and Zend_Application will be building a more structured, RAD-style development and runtime environment on top of the existing ZF components. These components will be as use-at-will as ever, however. In fact, the design of Zend_Tool is almost complete; it can also be used separately from the other components. :)

    ,Wil

    By Wil Sinclair on Oct 15, 2008

  5. I agree with the ZF manual about being too technical — until now, I have to read back and forth in order to understand the topics. It just doesn’t relay to entry-level users.

    In order to go mainstream and get new users interested, I would suggest that they rewrite the entire thing (still keeping the current one for those who want to go really in-depth) — or at least some “entry” points in using the manual.

    They should follow Code Igniter. Any PHP programmer can build an application without having to read hundreds of pages of “technical”-stuff. For example, when I just want to find a quick description of a component, I get it upfront in CI’s website. For ZF, I am presented with a full page that will take me whole day to read.

    By wenbert on Oct 15, 2008

  6. I am really looking forward to Zend_Tool. Since I am using Symfony and ZF, this is one thing I am really missing. For small projects and rapid prototyping, ZF is the perfect way to go. But when you have several different developers, which have different background and use different methods and design patterns, its sometimes hard to enforce a structure in the project. Symfony gives you a fixed structure, which is often easier for new developers to get along. Nevertheless, when its comes down that I had to choose: I would always pick ZF again. With Zend_Tool and Zend_App this is going for me in the right direction.

    By thedave on Oct 15, 2008

  7. @wenbert I have begun a full review of the reference guide, but it’s more of a consistency of style and comprehensiveness update. I think what you might be looking for is another set of documentation altogether. Have you looked at our QuickStart lately: http://framework.zend.com/docs/quickstart? Also, it is worth googling for “zend framework” to find the many community hosted guides. If you don’t find what you’re looking for with these options, drop me a line at wil@zend and let me know what you’d like to see.

    ,Wil

    By Wil Sinclair on Oct 15, 2008

  8. The last time I went searching for tutorials on ZF, I was pretty disappointed. I would find tutorials on older incompatible versions, tutorials that were so minimal or not complete that they didn’t help, or “Video tutorials”. I hate video tutorials for programming. They really don’t make sense.

    By EllisGL on Oct 15, 2008

  9. @EllisGL

    Meet the manual:
    http://framework.zend.com/manual/en/

    By Federico on Oct 15, 2008

  10. Im a noob in PHP but not in programming so Zend Framework for me is easy to use. Zend Framework is nice because use best practices and a lot of OOP concepts. Maybe for people new in programming it can be little difficult because have to grasp OOP concepts first before use Zend Framework. But I like a lot now PHP with the Zend Framework and the new PHP features that 5.3 bring as namespaces and closures.

    By the way another feature I saw is interesting in the new version of Zend Framework 1.6 is the Dojo abstraction is pretty cool, I will use it soon on my next project. Also Im waiting the support of Adobe AMF protocol for Zend Framework.

    By OtengiM on Oct 15, 2008

  11. @Wil Sinclair Thanks for reply. I know documentation is a lot of work and I am probably asking too much ;) I should find the patience to read them instead.

    Thanks for the quickstart tutorial. I will definitely read it again – the last time I read one was a couple of months ago.

    By wenbert on Oct 16, 2008

  12. If you can learn Zend framework…
    It will be great!!!
    Zend framework is more advanced framework.

    By Salsan Jose E on Apr 27, 2009

  13. @Wil Sinclair I have started reading ZF for more than 10 days :) .
    Some guys like zendcasts are doing good jobs. From them we are able to learn more than the docs .
    The docs seems to be long and for a newbie we don’t know where to keep the codes . May be lagging the proper knowledge of MVC .
    If there is a tutorial for a blog or something , so we can know how authentication is doing , connection to database etc .
    As the new 1.9 is gng to come you can update with the ZF tool . So every one new and old will be helpful.

    Thanks

    By Hari K T on Aug 1, 2009

  14. Hi, I guess I may be talking too soon, but I have spent about a week trying to grasp the basics of zend framework, and I have found it complexing on many levels.

    I think the real problem is they don’t document working examples of each component a la php.net.

    I did find the quickstart tutorial beneficial and a good starting point but, as was commented earlier, it is so flexable as a framework that I need a little more guidence. It doesn’t help that it is being developed so quickly either because online tutorials go out of date in a jiff. I know that is the price of having the latest and greatest but being that I am timed constrained and need to learn Zend for my work, it is becoming a stressful experience.

    By Matt on Aug 26, 2009

  15. SELECT * FROM emp WHERE ename=’smith’ AND id=520

    please tell me how to implement this qury in zend frame work

    By venkatadry on Mar 13, 2010

  16. I’m basically from J2EE programming background, with some understanding about php (i can select data from DB data and display on screen using php :) ) ). started going more deeply into PHP nowadays. I feel that Zend is fantastic and the greatest thing about it is that it gives flexibility and lets us create our own structure for our applications. Tutorials can be developed, but as programmers, we can see the classes and understand what they are doing. Using a fantastic system is more important than skipping it just due to the complexity of tutorials

    By Ragesh on Jun 28, 2010

  1. 1 Trackback(s)

  2. Oct 29, 2008: Links interesantes

Post a Comment

You can use some HTML (a, em, strong, etc.). If you want to post code, use <pre lang="PHP">code here</pre> (you can replace PHP with the language you are posting)