I'm trying to get a good idea of where most PHP programmers are leaning these days. It seems lately that a new PHP framework is coming out every week and I just wanted to get a headcount on what everyone is using.
I myself am using [Codeigniter and [URL="http://fuelphp.com"]FuelPHP](http://codeigniter.com). What about you?
I'm using Zend Framework and CodeIgniter.
Based on looking at a fair number of job opportunities (prob 30 or 40) in the last year or so (in the UK), I would say that almost half mentioned Zend Framework experience.
I'm using Yii and I really dislike Zend; it's soooo extremely verbose
Is there a scenario where you would chose Zend over Codeigniter, other then work/client preference?
I would say Zend Framework and CodeIgniter are at opposite ends of the framework spectrum. Zend Framework is huge, complicated and takes a long time to learn, but is incredibly powerful and has an immense range of features. Codeigniter is much smaller, is very quick to learn and use, and has great docs.
The bigger the project, the more likely I would be to use Zend Framework. For an application/site that I know isn't going to be too big, CI will be quicker. But for a bigger site, you may get to the point where CI starts to limit you, so ZF would be the better option.
With Codeigniter, there are particular ways of doing particular things - you may find that the CI way doesn't fit what you want to do. Whereas with ZF there are generally many different ways of doing particular things - so there will always be a way of doing what you need to.
(All my own experience/opinion - yours may vary)
Symfony2 with Doctrine2. Both projects had the courage to start completely over and jettison any pre 5.3 baggage. Still not sure how much value name spaces really add but it does make the code easier to read.
Can you give an example of where a framework like Codeigniter might limit you? I'm only asking because I'm working on an application now, that I want to grow overtime, and I don't want to go down a path that might end up bad.
I've been using Codeigniter exclusively for over a year now and it scales quite well, however you will quickly realise that using JUST Codeigniter is not enough, you'll need a templating/partial library, an auth library, a decent messaging system for feedback. All of these libraries are, fortunately, readily available, and you will over time develop your own "base" install for CI.
Once you have your base, it becomes a joy to use.
I'm not -- I consider frameworks in INTERPRETED languages to be... much akin to how Patton described fixed fortifications; a monument to the stupidity of mankind. For all the work they "save" you, they end up costing more in the long haul and you're never quite sure what's going on under the hood.
They're a crutch, and in most cases a sleazy shortcut used by people who can't bother learning to do their job properly in the first place!
That said, they're not as bad as say... CSS frameworks; which take everything I just said and multiply it 100 fold.
See blain's answer for some examples. If you know the requirements of your project, and you know that CI can meet them, it would definitely be one of the best frameworks to use. Otherwise, I would prefer to use something bigger - eg ZF.
You could integrate ZF with CI though - plenty of info on this.
Which frameworks have you tried out? The two I've used a reasonable amount (CI & ZF) are both a joy to use, and allow huge increases in productivity. I would say coding up applications can be done in approx half the time compared to using basic PHP. There is no point rewriting common web components like MVC, ACL, Authorisation, DB access etc when you have pier-reviewed frameworks which provide these.
All you have to do to blow Zend out of the water is use the HMVC add-on by wiredesignz and Doctrine 2 with codeigniter. You'll instantly, and easily, have a far more robust and less complicated slate to work from AND have all the benefits of CI's documents and libraries.
That is completely inacurate. I am sorry but as a J2EE developer who works in a spring 3 environment there is nothing overly different about using a framework that has established conventions between interpreted or compiled languages. You may have the unfortunate experience dealing with established code bases written by inept and crutched developers but comparatively CodeIgniter, Django and Rails (especially 3) are far superior than Spring for their intended audiences. Hibernate and Mybatis are far more complicated for what it is and the saving grace of either comes from Apache's Maven project.
Add on top the fact you have to deal with class paths and configuration files despite any dependency injection and convention tools you use...
Sir you are just wrong. There is just no point into reinventing the wheel and why on god's green earth would programming in PHP, Python and Rails deserve not getting the same treatment as you would give .NET or Java? FuelPHP and Kohana are even making strides to support PHP5.3 which makes PHP far more robust and parity with OOP design goals you'd want and have in Java for most things.
At work I use Drupal 6.0 (which all our primary sites are built on). In my free time I have been slowly exploring Symfony 2 and Drupal 7. At work we also have several sites using an in-house created language/framework similar to PHP built on C which is… lets just say less then pleasurable to work with at times.
I have probably spend around 60 hours with Symfony 2 and I think its the best PHP framework to date. Not only in terms of code quality, but leveraging other well known projects and documentation is superb. What can say about Drupal 7.0… well its Drupal 7,lol. Better then Drupal 6 but still… f**kin Drupal!
I know a couple of months ago you were rambling on about being in the process of creating your own framework – so its trash also, or just the code bases that have not been created by deathshadow60… I'm confused.