|
I worked with Symfony for almost 3 years, from 2008 to 2010. This year I'm working on a big Ruby on Rails project. And before 2008, most of the work I did involved hacked together PHP projects. I would say that if one can use Ruby On Rails, then of course one should. It doesn't matter whether Ruby is better than PHP as a language, what is certain is that Ruby ecosystem is much stronger than anything in the world of PHP, and for any large project you will be depending on whatever ecosystem surrounds a language. Having said that, I would say that Symfony is the best hope for PHP. It is the framework that takes PHP furthest forward, and offers the best starting point of a strong ecosystem. Symfony imitates many of the best features of Rails. I've worked on a lot of PHP projects. I've worked on WordPress and Drupal and CakePHP. I dislike nearly all software written in PHP. But Symfony is elegant and clean and the people behind it are serious and intelligent. If you have to work with PHP, then you should work with Symfony. However, I do not expect the Symfony community to ever grow large, and I will quote something that I wrote on my blog a year ago to explain why: "No matter what data source you consult, the conclusion is unmistakable: Symfony is a small community, and its rate of growth is slow. Why is this? My own theory is that Symfony brings to PHP something that PHP has long been missing: a truly professional, industrial strength, object oriented architecture that allows PHP to be taken seriously in the enterprise. However, all of the people who would be truly interested in such a framework have long ago found a home using Ruby, Java or Python. In short, the kinds of people who gravitate to PHP are exactly the kind of people who are unwilling or unable to appreciate the beautiful elegance and power of a system like Symfony. The people who need something like Symfony gravitate to other languages." http://www.teamlalala.com/blog/2010/04/11/the-symfony-commun... |
There's actually probably multiple reasons, but that's the easiest one off the top of my head. PHP's used in all kinds of web places that Ruby isn't, mostly because Ruby's not a great fit in those places.
Hello <?=$name;?> it's <?=date("h:i:s");?>.
I've never met anyone who does 'ruby pages' and drops ruby in to various files as needed for small stuff. You can do that and many people do with PHP.
All web work I've ever seen done in Ruby uses Rails or Sinatra or some framework. Only a portion of web work I've seen in PHP uses any community framework. This is just the way it is.
Your point on ecosystems is correct - the ZF system is probably the closest modern one out there (indeed, ZF should have been called PEAR2 years ago) - Symfony uses bits of ZF libraries as needed. But because of the naming, people think you use all of it. Because Rails was/is the dominant web framework in Ruby for so long, it feeds on itself, and people end up writing cool stuff for Rails, and more people use it because of the cool stuff, lather rinse repeat. The cool symfony stuff mostly can't be used outside symfony, CI stuff not usable outside CI, etc.
There's some cool stuff in Grails I use - it's not possible in PHP (maybe in the future if the language changes) so I use Grails when need be (or when I feel like it). No amount of libraries/frameworks in PHP will make up for the missing language features, and this is the heart of your last paragraph (which I agree with). I still use PHP for a lot of stuff, but have expanded out to other tools that fit other use cases better.
I do wish I'd see other camps being as broadminded as they exhort PHP users to be, though. By and large, there's stil loads of people that try to do all their projects in Rails, or J2EE, or .NET, or Django, or whatever. PHP's got its place, and sometimes really is the best choice for a project. Ultimately, there's still loads of fanboys out there in all camps. :/