Hi symfonians and symfoniacs!
Today we introduce new section on our site. It’s about PEOPLE in symfony world and the ways they use symfony. We’ve prepared a few questions and asked a few symfony guys to respond them. It was always interesting to me to hear voice of symfony developer – to know which plugins he uses, which way he came to using symfony, etc
Today’s guest is Lawrence Krubner owner of “Symfony Experts” which is unique service of “problem-solving community for Symfony”. So here is what we asked Mr. Krubner and what he responsed:
1. About yourself (programming education/background, activities)
I got into programming initially as a way to automate creative work. This was back in the mid-90s. I was working in a small publishing establishment, and the office was Mac only. My earliest programming involved writing simple Applescripts on a Macintosh to enforce naming conventions for the files that were submitted to us. I initially thought I wanted to go into publishing and be a writer/editor/graphic designer, but I found myself drawn to the machines we were all working with, and I wanted to understand how to better tap their power. Although I’ve done all kinds of programming over the last 15 years, I continue to be drawn to light weight scripting languages, such as PHP, because of the productivity they give me. For most of the work I do, I do not need the execution speed I might get from C, nor do I need the strict type enforcement that Java might give me. Rather, I need a flexible language, and PHP is good in this regard. (All the same, as a side project, I’ve started working on a game, using JavaFX, so I’m back in the world of Java.)
2. When you’ve heard in first time about Symfony and what time it takes from that moment to start using Symfony for development
Let me back up a moment and talk about Ruby On Rails. I first heard of RoR in late 2005, and at first I was confused how a framework could promise such large productivity gains. Then I looked at a lot of the RoR videos, and I was impressed. In early 2006, everyone was talking about Ruby on Rails, and I started learning Ruby. I wondered, “Will PHP ever have a framework this could, or do we all need to abandon PHP and switch to Ruby?” I think that was a relevant question all through 2006 and 2007. By the end of 2007, it became clear that the world of PHP was generating some good responses to RoR. I was intrigued by 2 in particular, CodeIgniter and Symfony. CodeIgniter had the advantage of being light-weight, and Symfony had the advantage of being industrial strength. For most of the projects that I work on, I need the structure and comprehensiveness of Symfony. I tend to work on big projects, or projects where growth is planned, where CodeIgniter would not be appropriate. Symfony gives the world of PHP something it has long needed: a full scale framework that can be taken seriously by large enterprises.
3. What Symfony-driven projects you have launched and what were the issues with using Symfony for them. Did you have to change anything (framework, hosting, ORM, payment gateway) or are you thinking about changing anything for these projects?
Well, of course, we built Symfony Experts with Symfony http://www.Symfonyexperts.com/. When I say “we”, I mean myself and Darren Hoyt. Darren is the most talented graphic designer and usability expert that I have ever worked with. We have worked for various entrepreneurs since 2005, though this was the first time we were working on our own project, and free to do whatever we wanted. I think the results have been good so far.
We are building out a whole series of paid question and answer sites, all of them linked from Codewi.se http://codewi.se/. Symfony has been a fantastic framework for these projects. It allows for rapid iteration. We constantly get feedback from our users, and we constantly make changes to our sites, based on that feedback. Many of these suggestions cause us to make changes to the schema of our databases. Symfony helps us keep these changes well organized and structured: we write a database migration, we change schema.yml, and we regenerate our model classes. Think about the alternatives. If we were using one of the heavy Java frameworks, we’d have to tweak a dozen XML files, so every change to the database would be a royal pain. Or, on the other side of things, if we used no framework at all, our code would be an unholy mess of SQL that was constantly in transition. Symfony gives us the perfect balance of flexibility and structure.
The repository of plugins has become fairly rich and allows us to build simple sites quickly and easily. The E-Society http://www.theesociety.org/ would be an example. Here we built an online social network in a few weeks, using plugins to manage such things as users, and images, and all the files that the users might upload.
4. What are RDBMS, Symfony plugins, ORM you use for Symfony development.
Mostly I’ve used MySql with Symfony. In terms of plugins, we use several, including:
Plus some others that I can not think of right now. sfGuardUser is really ingeniously done. I’ve yet to find a situation where its user model could not be made to handle the needed permissions.
We want to do what we can to provide financial support to the many wonderful developers who create these plugins, so we encourage them to sign up to receive donations from our site: http://www.Symfonyexperts.com/support_open_source/index
As our site grows, I hope it can become a source of useful funding for plugins.
Mostly I’ve used Propel as the ORM. It was the official Symfony ORM back in early 2008, when I started using Symfony. Of course, I look forward to switching to Doctrine, now that Doctrine is the official ORM.
5. From your perspective: where is moving Symfony? Is this right direction? Are you planning to migrate to Symfony 2?
I am very excited about Symfony 2. I feel like Symfony is moving past some of the unnecessary debris that it inherited from Mojavi3. The team developing Symfony seem to be borrowing some good ideas from Ruby on Rails, Grails, Spring and Django. My one concern here is that they are perhaps too wedded to Java. Fabien Potencier once said that Symfony was his first PHP project. Clearly, the core team has a background in the world and ideas of Java. Some of their ideas run the risk of making the framework too complicated. I’m thinking especially of their new framework for dependency injection. And yet, they also have a chance to innovate here. Most dependency injection frameworks are too complicated, so if they can find a way to bring “convention over configuration” to this area, they’d be making an important contribution to the community.
6. Critics of the Symfony often refer to the slow speed and high learning curve. Do you use any accelerators/extra resource to speed up your production projects?
So far the built-in caching of Symfony has been enough for our sites. I do think people sometimes blame Symfony for slow speed when they have not yet invested enough time in optimizing their server. A good system administrator can get a lot of extra speed from a server by properly configuring Apache and MySql. All the same, I’m considering using MemCache on one project that is getting very big.
7. What are Symfony projects you are working on at the moment and are you using any other frameworks along with Symfony?
For websites, we’ve fallen into a pattern of using WordPress for simple content sites and using Symfony for any site that offers a service, or which will undergo rapid evolution. I’ve also dabbled with Groovy and Grails, and Ruby on Rails, both of which are excellent frameworks, but somehow I always come home to PHP and Symfony, which continue to do everything I really need on the web.
8. Are you using any extra tools for development like IDE, visual DB/ORM builders, version control, continuous integration?
I used to use simple text editors like Kate but I’ve recently switched over to using NetBeans. It is a really good IDE for PHP development, and now it has a plugin specific to Symfony development.
In terms of version control, we have been using Springloops http://springloops.com/ since 2007 and we are very happy with them. They offer a good, hosted Subversion service, and they have a great graphical interface for understanding changesets.
9. What you’d like to tell to Symfony community
As a freelance Symfony programmer I have been disappointed with Symfonians http://symfonians.net/ because it does not do enough to enable companies to find Symfony programmers. We hope to address this on Symfony Experts. We are about to launch a new page, “Members Looking For Work”, and all the freelance programmers can sign up and make themselves known. We are about to start advertising the site much more heavily than we have in the past, and we hope the new page will become a useful way for freelance Symfony programmers to put their names out to the public.
Recently there was some discussion about whether these sites raised enough money for the people who answer questions: http://codewi.se/2010/05/19/codewise-exploitive/ I think these are valid and important questions. Darren Hoyt and I are certainly open to feedback. We will continue to implement any ideas that we think will bring more money to the members of our sites.
That’s it. As for me very cool and informative as provides alternative solutions to the ones we use for the development.