Hello,

I am an intermediate PHP Developer and after learning PHP programming I want now to learn this new awesome world most people are talking about called Frameworks. So, I been researching a lot about it and the PHP Frameworks that seem to be the top notch are Zend Framework, Symfony, CakePHP, CodeIgniter and Yii. After reading a lot about it I shorted the list with 2 Frameworks that are Symfony and Zend Frameworks because it seems that most people agree to be the best of them, so, I would like to ask for 2 things that are the following:

1) What is your opinion which Framework is the best to learn Symfony or Zend or other (if so which one) and why?

2) Can you recommend me a book to start my learning on the Framework chose. For Zend I was thinking this book book and for Symfony I was thinking this book but, it seems that this books are old since both Symfony and Zend got to version 2. So, I would appreciate if someone can put me on the right way by choosing the best framework and book to learn.

Thanks everyone for your time.

Regards

    I cannot tell you which is best. All I can say is that I've used CodeIgniter on several projects and found it both useful and easy to learn. At work we use a proprietary PHP framework styled after Java Struts. It's different, but the fact that I understood the basics of MVC frameworks probably made it easier for me to learn that it would have been otherwise, so learning any framework is probably a good thing.

    If you want to get into more cutting-edge stuff that makes use of the latest PHP features, you might want to poke Lithium with a stick and see what you think.

      Hello Nogdog,

      before anything thanks for da reply. I been usin CI to learn the basics on MVC but, now I want to go to a more serious framework as Zend or Symfony since I am trying to build a larger project, CI as you said is great to start learning how MVC works and also for small projects but, for the Application I got in mind I want something more secure to handle it. That is why my 2 preferences are Zend and Symfony.

      So, if anyone can tell me which to choose, why to choose it and recommend me a good book or tutorial or something to start working I would really appreciate it.

      Thanks so much!

        Out of curiosity, why do you feel those two frameworks are more suitable for larger projects (for some undefined value of "larger") and are more secure? I'm not saying they aren't (or are), as I've really not done much comparison over the last 2-3 years -- I just wonder what is the basis for this assertion?

          Hello Nogdog,

          Well, I been reading a lot about it because is a world I really want to learn and most sites that compare different frameworks that I been reading and it gets to the comparason of Symfony and Zend to be the best. The Frameworks that I been reading about are the major ones on my opinion those are CakePhp, CodeIgniter, Yii, Symfony and Zend.

          CodeIgniter they sayed is really good as you said is easy to learn that for me that is a big plus since I am a newbie on the subject but, the problem with CI is that is not trustfull to use in a big project like for example a dating site like matchdotcom it is more suitable to use it to build blogs, forums or projects that you do not have a lot of users with a lot of features to manage like a social network or dating site for example.

          Cakephp it seems that is suitable for that kind of projects and the plus it has that has a great community and a lot of projects prebaked as they called but, personally I just seem the process of building something in Cakephp was very difficult and did not make sense to me all the bakery process.

          Then there is Yii people been talking a lot about it and it seems very interesting because a lot of people said that is better than Zend or Symfony since its not as hard to learn, also the community is great, there not as many Yii developers as Zend or Symfony, also it saves a lot of time and its really robust for larger projects.

          Symfony has an awesome fame after Yahoo announce it uses symfony for del.icio.us, Yahoo Answers and Yahoo Bookmarks, that really put them upthere most symfony developers are completely safisfied with the framework but, the problem with it that is very slow with small projects, its great for large projects like Yahoo but, not for small things and also, people said it is very dificult for a newbie to make sense to it.

          Zend Framework is like the main framework on the PHP world or its been seeing that way because its the same company that build PHP language what it is today, also there are tons of developers for Zend, there even certificacions from Zend for developers, a lot of large projects are done on Zend, has great documentation and a a great community for support.

          After you asking me this I went and took another look and I think i just decide what to choose not Zend or Symfony I think I feel more attract for Yii, has a lot of great reviews from newbies and experience developers that are happy with it. If anyone can recommend me a book to read and learn Yii I will appreciate or tutorials and also give me his/her opinion of Yii.

          Thanks for helping me decide which to use.

          Nagdog if you are still interested in reading more about it here are some links that I been reading, let me know what you think

          http://www.yiiframework.com/forum/index.php/topic/6168-deciding-between-zend-and-yii-as-a-company/
          http://www.sheldmandu.com/php/php-mvc-frameworks/yii-vs-zend-vs-code-igniter-compared
          http://stackoverflow.com/questions/8727482/chossing-yii-or-zend-for-my-big-project
          http://www.larryullman.com/2011/06/01/yii-vs-zend-vs-code-igniter-compared/
          http://www.php-developer.org/most-used-php-framework-the-popular-top-7-list-in-year-2011/
          http://stackoverflow.com/questions/9467828/which-one-to-go-yii-or-symfony
          http://blog.nephtaliproject.com/?p=166

            What frameworks have you actually tried using? Like, something to get to the "hello world" stage and a little more.

            The thing is, if you don't actually have a project in mind, then the choice is very much a matter of personal taste. You can read reviews and various comparisons and opinion pieces, but if you don't like a framework, then you don't like that framework, and there's no point torturing yourself by using it unless you really need to. But you won't find out what framework you like or don't like until you start using them.

              7thsense;11007733 wrote:

              ...Symfony and Zend to be the best.

              Green is the best color! (Do I have to post that on a blog for it to become official, or would you accept a message board like here at PHPBuilder?)

              7thsense;11007733 wrote:

              the problem with CI is that is not trustfull to use in a big project

              What does "not trustfull[sic]" mean? At what size of project does it become "trustfull[sic]" again?

              Seems to me that an insecure application is an insecure application is an insecure application.. regardless of which framework (if any) is being used.

              7thsense;11007733 wrote:

              the problem with it that is very slow with small projects, its great for large projects like Yahoo but, not for small things

              I must be misunderstanding the point you're trying to relay, because it almost sounds as if you're suggesting that the speed/efficiency increases with the complexity of the project. (And that definitely doesn't sound plausible to me.)

              I think laserlight made an excellent point in that it should really come down to what you are most comfortable using. At the end of the day, it doesn't matter how many opinions claim that framework XYZ is "the best" if you're battling with it at every step along the way.

                While I agree that you need to find the one that is right for you, not the one that is right for someone else , there's nothing wrong with getting other opinions to decide which ones to try first, hopefully increasing the chance that you'll find the "right" one early on in your trials versus having to try several that turn out to be "losers."

                That being said, I would suggest figuring out exactly (for some fuzzy degree of "exactliness") what you need from a framework for the specific project you have in mind, then looking at which one best meets those needs in terms of design, built-in features, and available 3rd-party add-ons, In other words, look for the framework that will best support your specific application, rather than engineering your application to fit a specific framework.

                Other than that, be sure to let us know what you find out, good or bad. 🙂

                  Hello laserlight,

                  you are absolutely right but, that is the whole thing, I just want to choose the right framework so, I can specialize in it, nothing more than that.

                  By the way I do have a project in mind and now that I make my choice I been on the Yii website and been reading its documentation and it's great I am going to start with the tutorials they recommend!

                  Thanks for helping me make up my mind thank you both!!!

                  Cheers!!

                    NogDog;11007741 wrote:

                    While I agree that you need to find the one that is right for you, not the one that is right for someone else , there's nothing wrong with getting other opinions to decide which ones to try first, hopefully increasing the chance that you'll find the "right" one early on in your trials versus having to try several that turn out to be "losers."

                    That being said, I would suggest figuring out exactly (for some fuzzy degree of "exactliness") what you need from a framework for the specific project you have in mind, then looking at which one best meets those needs in terms of design, built-in features, and available 3rd-party add-ons, In other words, look for the framework that will best support your specific application, rather than engineering your application to fit a specific framework.

                    Other than that, be sure to let us know what you find out, good or bad. 🙂

                    Thanks for the help guys! To help me decide once again, I am starting with Yii and I will let you know if it was a good or bad decision 😃

                    Cheers + Regards!!!

                      bradgrafelman;11007739 wrote:

                      Green is the best color! (Do I have to post that on a blog for it to become official, or would you accept a message board like here at PHPBuilder?)

                      What does "not trustfull[sic]" mean? At what size of project does it become "trustfull[sic]" again?

                      Seems to me that an insecure application is an insecure application is an insecure application.. regardless of which framework (if any) is being used.

                      I must be misunderstanding the point you're trying to relay, because it almost sounds as if you're suggesting that the speed/efficiency increases with the complexity of the project. (And that definitely doesn't sound plausible to me.)

                      I think laserlight made an excellent point in that it should really come down to what you are most comfortable using. At the end of the day, it doesn't matter how many opinions claim that framework XYZ is "the best" if you're battling with it at every step along the way.

                      I agree!! thanks everyone for helping me decide!!

                      Cheers!

                        bradgrafelman wrote:

                        I must be misunderstanding the point you're trying to relay, because it almost sounds as if you're suggesting that the speed/efficiency increases with the complexity of the project. (And that definitely doesn't sound plausible to me.)

                        I think the intention was to suggest that for small projects symfony has serious development overhead.

                        7thsense wrote:

                        you are absolutely right but, that is the whole thing, I just want to choose the right framework so, I can specialize in it, nothing more than that.

                        There is no such thing as "the right framework" - if there were, there wouldn't be any of the others.

                        There are significant differences in the design approaches behind what get lumped together as "frameworks" that choosing the "right framework" is like choosing "the right programming language". Zend and symfony, for example, are completely different: one is an integrated full-stack environment with a specified development workflow, and the other is a rich class library providing the kit for building such a stack into an existing or bespoke envirionment.

                          Weedpacket;11007763 wrote:

                          I think There are significant differences in the design approaches behind what get lumped together as "frameworks" that choosing the "right framework" is like choosing "the right programming language". Zend and symfony, for example, are completely different: one is an integrated full-stack environment with a specified development workflow, and the other is a rich class library providing the kit for building such a stack into an existing or bespoke envirionment.

                          Hello Weedpacket,

                          I think you are absolutely right, but you missunderstood me, what I meant was that I want to choose a framework to specialize using that framework only, because as you said every framework is a new world. Nothing more than that thanks for the help.

                          Cheers!

                            7thsense wrote:

                            what I meant was that I want to choose a framework to specialize using that framework only,

                            My opinion is that it's better to become at least acquainted with a range of different frameworks. Specialise in one, but even then it's helpful to be familiar with others as well because then you'd have a richer understanding of your specialty, and know when one of the others would be a better choice for something.

                              Write a Reply...