p. !>http://farm1.static.flickr.com/158/419283552_ea1ace5d06_m.jpg!:http://www.amazon.com/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.com%2Fgp%2Fproduct%2F1590597869&tag=postcarfrommy-20&linkCode=ur2&camp=1789&creative=9325 Frameworks are everywhere in the PHP community these days. Different frameworks fill different needs and have different personalities behind them. Recently I had the opportunity to talk with Francois Zaninotto and Fabien Potencier, the driving forces behind the symfony framework. Not too long ago, symfony released their 1.0 milestone version. They have also released their extensive documentation in print from “Apress”:http://www.apress.com/, as well as “on the web”:http://www.symfony-project.com/book/trunk.
p. **DevZone: Ok guys, tell me how you got started in PHP?**
p. Francois Zaninotto: I’m an engineer by training. I graduated Engineering school in 1997. I worked for a couple of years for the Michelin Tire Company in France, in their mapping division on a production that competes with the likes of GoogleMaps and Map Point. While I was at Michelin, I was working as a project manager using mainly J2EE technologies. When I quit Michelin I took a break from computers and went on a humanitarian mission. When I came back I contacted Fabien, whom I met at school, to see if he had a position for me in his web agency.
p. That was roughly three years ago. Since then we have collaborated on Internet projects. I worked here at “Sensio Labs”:http://www.sensio-labs.com/ as a project manager and consultant on Internet strategy and web usability. As far as my technical training goes, I discovered PHP about a year and a half ago. I don’t have a programmer background, more of a management background, but I learn fast. When Fabien asked me to collaborate on symfony and to write the documentation I started digging into the code and translating it into the on-line documentation and what eventually became the book.
p. Fabien Potencier: I went to the same school as Francois and graduated in 1997. At that time I founded “Sensio Labs”:http://www.sensio-labs.com/, which is the company I currently work for. Sensio is a web development agency and we develop web sites for large corporate clients, mainly in France. We specialize in developing web sites on Open Source technologies. We began with Perl nine years ago and we began working with PHP around 2000 with PHP 4.
p. I’m not really a programmer per-se. I learned how to program for projects I was working on for our customers. I really started to look at PHP seriously with PHP 5.
My first project in PHP was symfony. Until then I had never developed with PHP and I had never written a PHP program.
p. **DZ: With the current plethora of frameworks available for PHP developers, why did you start symfony?**
p. FP:I started developing symfony three years ago. At that time I looked for a framework for the development we were doing for our customers. As I said before, we mainly do large-scale web applications and intranets that are highly complex. I couldn’t find any framework available at the time with the features like internationalization or deployment that we could use for our work. At that time Mojavi looked good for it’s MVC architecture and Propel looked good for its object-relation mapping. symfony actually started as a glue between those two projects.
p. **DZ: What is the target audience for symfony? Is it better suited for a specific type of application?**
p. FP: Actually, you can build just about any kind of PHP application on top of symfony. Because of our work with large corporate clients, our main focus is large scale applications with many modules and large databases. It really isn’t the best choice if you are building small applications like blogs or small corporate web sites. To run applications built on symfony, you have to have a PHP accelerator, that’s really important.
p. **DZ: Looking at your new book, “The Definitive Guide to symfony”:http://www.amazon.com/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.com%2Fgp%2Fproduct%2F1590597869&tag=postcarfrommy-20&linkCode=ur2&camp=1789&creative=9325, the question comes to mind, is symfony a community project or is it something that Sensio Labs developed and is just sharing with others?**
p. FP: Both. When we decided to open source symfony, I already had a very clear idea of how to build an open source project. The code is very important, the features are very important but the documentation is very important too. So when we open sourced symfony, about a year and a half ago, we wrote over four hundred pages of documentation for the first version. It’s really important to have good documentation to go along with your good features.
p. Today, Francois is the leader for the documentation project and he wrote ninety percent of the available documentation. symfony is really a young project. We already have a large user community but contributions are behind right now. I have a clear vision of where symfony is going and what needs to be in it. Until 1.0 was released I didn’t grant write access to the repository. Now that 1.0 is out, I am more open to other contributions.
p. Somwhere around ten people now have write access to the trunk repository. More than 100 people contributed some code in the form of a patch for symfony 1.0.
p. **DZ: What is the one feature that makes symfony stand out among all the other frameworks?**
p. FP: I think the biggest feature that symfony has to offer is what we just talked about, the right balance between features and documentation. The next biggest feature would have to be configuration. symfony has a strong configuration model. There are several levels, project, application, module, action, etc. Configurability is a very strong feature of symfony. It was the main reason that Yahoo! chose symfony. The third feature of symfony would have to be its testing framework. We have a very good functional test layer in symfony.
p. FZ: I’d say that the quality of the code is one of the things that separates symfony from the other frameworks. When symfony doesn’t do exactly what you want it to do, you can change it and modify it very easily to do what you want it to because of the quality of code. There are a lot of PHP frameworks out there which are either not documented well enough, not tested enough or just not written well enough, these are all strength of symfony.
p. Also, thanks to the plugin architecture, it is very easy to extend symfony. We have contributors building new plugins daily now. Overall thought I would have to say that there is no one single features that stands out and makes people say “I have to choose symfony because of this feature”. It’s the whole package that makes the difference.
p. **DZ: Let’s talk about the book for a moment. Francois, I assume that since you were the lead on the documentation you were the lead on the book as well?**
p. FZ: Jason Gilmore of “Apress”:http://www.apress.com/ contacted us because he saw the potential for a book in our documentation. He discovered symfony and actually used it in a project. He was impressed with the fact that at that time we already had 600 pages of documentation written. He suggested that if we did some small re-writes, it would make a great book. From our perspective, we thought it would be a great way to increase symfony adoption. In the end, it turned out to be much more work than we realized. All of our documentation was written for the web and had to be modified to fit in print form.
p. One final note about the book, it is released under the GFDL license. The entire book is available for download for free. It was part of our effort to make sure that symfony was open source.
p. **DZ: Finally, in closing, let’s talk about the symfony community.**
p. FZ: If the first two strengths of symfony are the quality of the code base and the quality of the documentation, I think the third would have to be the community.
p. It started like any open source project. There were early adopters who were quite happy with the code and wanted to share it but really, it was limited in the beginning. As time went on, more and more people came, mostly as we released more documentation, screen casts, and tutorials.
p. Once we reached critical mass, the community started feeding itself. Community members started answering questions posted on the mailing list and in the forums and they started building applications on top of symfony. This allows us to focus on the code and documentation. The community is what keeps symfony alive. A vibrant and contributing community means that the project is alive and will continue to live for a long time.
p. I’d like to thank Francois and Fabien for the time they took out of their schedules to talk with me today about their project. If you want more information on symfony, the web site is located at “http://www.symfony-project.com/”:http://www.symfony-project.com/.