views:

176

answers:

6

I haven't determined to learn about zend framework,

so your advice is important for me to make a final decision!

+2  A: 

It really depends on what you're developing. There is no rule that states that using a framework is necessarily more productive.

You would be better off talking about the type of application you're expecting to develop, and whether or not you could realize productivity gains by incorporating a framework (such as Zend).

karim79
A: 

I'm sure in most cases it will be several times more efficient if you'll use any MVC framework.

Sergei
You mean Zend framework is included in MVC framework?
Shore
Model–view–controller (MVC) is an architectural pattern used in software engineering. Successful use of the pattern isolates business logic from user interface considerations, resulting in an application where it is easier to modify either the visual appearance of the application or the underlying business rules without affecting the other. - http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller
Philippe Gerber
obviously view is meaning visual appearance.so Model and controller are for business rules?
Shore
+2  A: 

Due to its complexity and OO structure a framework like Zend Framework can never be as fast as a lightweight framework or even procedural code. It really depends on what you want to do. I prefer the maintainability, clearness and all the built-in features and helpers of such a framework.

What I often miss is the fact, that most websites could increase their speed enormously by optimizing their frontend, not their backend. Have a look at this superb list about speeding up your frontend @ yahoo.com:

  • Minimize HTTP Requests
  • Use a Content Delivery Network
  • Add an Expires or a Cache-Control Header
  • Gzip Components
  • Put Stylesheets at the Top
  • Put Scripts at the Bottom
  • Avoid CSS Expressions
  • Make JavaScript and CSS External
  • Reduce DNS Lookups
  • Minify JavaScript and CSS
  • Avoid Redirects
  • Remove Duplicate Scripts
  • Configure ETags
  • Make Ajax Cacheable
  • Flush the Buffer Early
  • Use GET for AJAX Requests
  • Post-load Components
  • Preload Components
  • Reduce the Number of DOM Elements
  • Split Components Across Domains
  • Minimize the Number of iframes
  • No 404s
  • Reduce Cookie Size
  • Use Cookie-free Domains for Components
  • Minimize DOM Access
  • Develop Smart Event Handlers
  • Choose < link> over @import
  • Avoid Filters
  • Optimize Images
  • Optimize CSS Sprites
  • Don't Scale Images in HTML
  • Make favicon.ico Small and Cacheable
  • Keep Components under 25K
  • Pack Components into a Multipart Document
Philippe Gerber
+2  A: 

Please remember, if you want to use Zend Framework to do anything efficiently you will need to learn how to use it first.

Time Efficiency: Zend has a large learning curve. So in terms of time, it is not so efficient if you are on a deadline. But after you learn it it makes it easier to code applications in PHP. It makes coding easier (dare I say). And that can be good or bad...

Ease of Maintenance: This is one of the more major advantages of using Zend Framework. But once again, you have to learn it.

Loading Speed: Even though people say that it will make your applications run slower, It only loads parts of the library that you need. It may make it a bit slower, but most think that it is a good trade off for ease of maintenance and coding time.

Overall, I have researched Zend and it is hard to get a full grasp on it without some mentor. If you need a better idea of how PHP Frameworks run, check out CodeIgniter. They have some good Video Tutorials on their site.

Best of Luck!!

Chris B.
A: 

For any website that is bigger than just a few pages, and that is expected to grow in the future (and if there's a client involved it will), you'll be better off using a framework.

There is definitely a learning curve with the Zend Framework, but if you are familiar with the MVC controller pattern in other languages it won't be too difficult to start working with it.

Zend Framework also comes with a very nice Dojo (JavaScript Framework) integration, which makes handling Ajax a lot easier.

On the other hand, it you don't know what the Model, the View, and the Controller are, you should definitely get familiar with these concepts (and maybe create a small sample projects in which you do your custom implementation of each component) before you jump into ZF.

A: 

Pros:

  • Better code
  • maintainable
  • adapters for everything
  • full-stack framework
  • suitable for any application
  • big community

Cons:

  • Slower without accelerator (min. 0.6secs)
  • long learning curve
  • terrible performance when not used properly (like 2secs/req)
  • no good to start just before project deadline :P
Tomáš Fejfar