1

I know there's a million "what's the best PHP framework" questions out there, but it seems like the answers tend to be skewed towards rapid development and low code bloat. We're looking to rewrite a very large, extremely feature rich, very high traffic web app, so our needs are pretty much the exact opposite. In order of priority, here's our needs:

  1. High Performance - Lots of complex DB operations, very high traffic.
  2. Feature rich - if there's a technology out there, we're probably using it somewhere in our app.
  3. Customization - there's a fairly good chance that we'll need to overwrite some of the functionality of the framework. From what I've read this is easier in some frameworks than others.
  4. Low learning curve OR lots of knowledgeable developers - we're growing, so we need to be able to get new people up to speed quickly, or we need to be able to hire people who are already familiar with the framework.
  5. Built in testing framework - I'm kind of new to this area, but this is a direction we want to move to streamline our QA process.

So, what say you? Codeigniter? CakePHP? Zend? Symfony? Something else entirely?

Luke The Obscure
  • 1,524
  • 2
  • 20
  • 35
  • 2
    From your list I would say that Symfony2 comes pretty close. Learning curve is quite OK and you can buy in knowledge if you need to. – hakre Sep 26 '11 at 23:32
  • zend is probably the biggest and most feature rich mainly because zend makes it and they maintain php. – Jonathan Kuhn Sep 26 '11 at 23:34
  • For anyone wondering which framework to choose, read and watch Uncle Bob: http://stackoverflow.com/a/18853233/1614973 – Dmitri Zaitsev Sep 30 '13 at 12:53

3 Answers3

2

I think your priority of 'framework' is missing the mark - if you're looking at high-capacity issues, then it's not so much the framework itself as it is how the framework's components can cache and scale. As is turns out, symfony and Zend do these things well, but you're looking at a large multi-server approach. These are still concerns for lower profile frameworks that are outside of their scope, so you're not learning anything from a framework that can't be understood elsewhere.

Raise
  • 2,034
  • 1
  • 13
  • 12
  • I think we currently have five or six servers, and I would not be surprised if we double that in the next two or three years. – Luke The Obscure Sep 27 '11 at 01:27
  • _it's not so much the framework itself_ Exactly that's what I think too, as [detailed here as well](http://artkonekt.com/blog/high-traffic-sites-and-the-php-framework-dilemma/) – Attila Fulop Jan 11 '17 at 07:14
2

A Custom Framework. A self-written framework to outline the potentials of your website, and perform heavily used functions frequently.

Adam Fowler
  • 1,750
  • 1
  • 17
  • 18
  • 1
    Follow standard design patterns like MVC and Front Controller, and any decent PHP developer will be able to pick up a custom framework quickly. – Brent Baisley Sep 27 '11 at 00:49
  • This is what we currently have. Despite a less than ideal language (coldfusion), our application performs very well. One of the main problems that we have run into is that it takes a new developer several months to really become productive since they have to learn the ins-and-outs of our custom framework. One of the main advantages of going with an established framework is not only we will get our rewrite done faster, but there will already be documentation and possibly educated developers. – Luke The Obscure Sep 27 '11 at 01:25
2

Except for low learning curve Zend Framework suits you in every other way

a)Hight Performance : Can be easily achieved by implementing Zend_Cache

b)Complex DB operations : Can be achieved by integrating Docterine with Zend (althoug Zend_Db can do just fine)

c)Feature Rich : It got feature which rarely exist in any other framework for example Zend_Lucene , Zend_Amf

d)Customization : Since it does not force directory structure and can be used as library as well since most of the components are independent of each other .

e)Testing Suit : Its component are built in testing friendly way you can build your own testing suit with Zend_Test

Mr Coder
  • 8,169
  • 5
  • 45
  • 74