Cake, Zend, Symfony and CodeIgniter are the best known PHP frameworks, but as is obvious from the the big list of PHP frameworks, there are many more out there. I have had my say on why there are so many, so I thought it was appropriate to ask some maintainers of lesser known PHP frameworks why they have also created a public framework. I was fortunate that all 4 took the time to reply to my 5 questions. Take the time to check out these frameworks they might be what you need for your next project.
The questions and answers follow here, grouped by framework.
Atomik Framework
Maxime Bouroumeau-Fuseau is responsible for the Atomik Framework.
- Why did you create a new framework rather than using an existing framework?
- Because most existing frameworks targets medium to big applications whereas Atomik targets small to medium ones. They always come with lots of libraries which you don’t always need.
And when there’s a framework targeting small application, it’s usually not well documented or not supported anymore. - What sets your framework apart from the others?
- It’s only one file! And there is nearly everything you need to create a website! It is simple and very quick to learn. You can also hack around pretty easily as it’s so small. It is, I think, a perfect fit for beginners but do not limit you when creating bigger applications.
It is also easily extendable using plugins. - Do you use this framework for all of your PHP development?
- No, of course. As said before, Atomik targets small to medium sites, so when I develop bigger ones, I like to use Zend Framework. I think it’s a very good framework with a real professional touch. I also used CakePHP for a medium sized application once.
While not having used them in real projects, I had a look or tried many more (code igniter, kohana,, symfony, prado, ez components, maintanable…). - Which other frameworks do you think are good?
- Zend Framework obviously! Most of the components are well designed with a professional feel. When creating big applications, it is very useful! The reference manual is a must and I like frameworks with good documentation! (but I have to admit I have some difficulty writing documentation!)
Symfony as some really good points.
I prefer Kohana over Code igniter for its PHP5 orientation (I don’t think PHP4 should be supported anymore). - Are there too many PHP frameworks?
- I don’t think so. I like the choice, the diversity. Most of them are maintained by individuals so why stopping them doing what they like?
And I don’t see why having so much choice would be bad. More ideas come from more projects!
However when building a list like you do, I understand you can’t include them all!
InterJinn framework
Robert Cummings is responsible for the InterJinn Application and Templating Framework.
- Why did you create a new framework rather than using an existing framework?
- I started work on my framework back in 2001. At that time not many frameworks existed. Additionally, I had been using an in-house company framework at the time, and I knew what I didn’t like and believed I could make something much better.
- What sets your framework apart from the others?
- I haven’t tried many of the frameworks since my own fulfills all of my needs. The ones I have tried were already in use when I was brought on board for development. If I were to make a comparison, I’d say that mine strongly decouples dependencies. For instance modules/components make use of services which are classes that have been registered with a user defined name. One requests the service by the defined name. As such any implementation can be substituted for another simply by overriding the
registered name. The class doesn’t even need to be a sub-class. This has been very useful at times to replace core functionality provided by InterJinn itself, or to change functionality in one project that shares code from another. - Do you use this framework for all of your PHP development?
- I use it for most of my development. It has the added advantage of being usable at the shell level also. So all the functionality built for web applications can cross over to shell programming for cron jobs or command-line maintenance.
- Which other frameworks do you think are good?
- I can’t really say which are good since I don’t have a lot of experience with other frameworks except in the case of EZ Components. I can say that I strongly dislike EZ Components, but maybe I’m using an old version with a mind numbingly horrible template system and classes structure (I’d purge it if it were my choice).
- Are there too many PHP frameworks?
- I would hazard a guess that there are many more frameworks than exist on your list. Many companies used to create their own in-house frameworks. That said, I don’t think there are too many. Each has its own flavour and its own approach to problem solving. Depending on a developer’s needs, one may be more useful than another for any given project. The fact that so many exist is evidence of the ease in which a framework can be created with PHP. That so many continue to exist, suggests that no
single framework has yet met the majority of needs of the majority of developers… something that is unlikely to ever happen. Contrast the question to asking if there are too many programming languages and then consider that creating a framework is considerably simpler than creating a new programming language. There will always be many languages and there will always be many frameworks.
Adventure PHP
Christian Achatz is responsible for Adventure PHP framework.
- Why did you create a new framework rather than using an existing framework?
- I started to think about a framework in 2004. The reason was, that there was no existing framework, that took care of reusability as I wanted it to do. Further, the MVC pattern is a nice pattern, but without supporting tools you can’t realize the DRY paradigm. So I started to develop the core components and along many projects, the number of components / modules / tools grew so that it could be called a real framework.
- What sets your framework apart from the others?
- In my opinion it is the spirit of reusability, that is deeply included in the core components, the way the MVC pattern is implemented like (e.g. page controller, templating by taglibs) and the framework’s performance. The whole feature list and a comparison between a couple of frameworks can be seen on http://adventure-php-framework.org/Page/088-Why-apf/~/sites_demosite_biz-action/setLanguage/lang/en. A outstanding feature among these is the taglib based form handling, that enables you to dynamically create forms by manipulating the APF DOM tree, that is created by the page controller. Summa summarum, the framework enables the developer to create modular and flexible HMVC (or even called composite MVC) applications, that are easy to maintain and to enhance.
- Do you use this framework for all of your PHP development?
- Yes. During a discussion on the “PHP World Konferenz” in Munich last November we agreed, that it is good to use a framework even for “small” projects. First of all, that a small project never keeps small ’till the end of their lifecycle. Second, a good application framework enables you to build simple websites in a simply way, but include the strength to add new modules easily. Although you have to spend a lot of time to learn a framework, the return on invest is big. If you’d tell me to implement a guestbook application from scratch, I would be 10 times slower.
- Which other frameworks do you think are good?
- Basically, a framework should be chosen according to your needs. This fact ist hard to explain, but IMHO essential. In my article comparing some frameworks (http://adventure-php-framework.org/Seite/055-PHP-Frameworks-im-Test-7/~/sites_demosite_biz-action/setLanguage/lang/de), I pointed out, that CakePHP is a good point to start at, but it does not feature a generic kernel, that can be extended freely without doing some handstands. Besides, Agavi has some similar concepts, Zend Framework and eZ Components both have many components, that are useful in fact, but the are not a framework. Giving you a detailed and established answer would take some more time. Nevertheless, I know many names of other frameworks. :)
- Are there too many PHP frameworks?
- Focused on the PHP community the answer is yes. Especially the PHP scene includes many script kiddies, that try to write software. If we would have fewer frameworks, the decision to use one, would be much easier. Thus, more people would (perhaps) use frameworks, that tend to “make” software quality better by design. If you think about the number of frameworks in other Languages, I think the amount is ok.
Lion Framework
Antonio Parraga Navarro is responsible for the Lion framework.
- Why did you create a new framework rather than using an existing framework?
- Well, I created lion framework more like 4 to 5 years ago (2004), when the most popular framework was mojavi. My framework was growing along those years, always driven to cover my own project needs.
The last year I made it public as well as open source. But again: the day I started this project I guarantee that non of the hundred of current framework were out there, but a few ones. - What sets your framework apart from the others?
- Maybe the most valuable feature of this framework is the Dual-MVC: A combination of MVC and MVP together. This is a really practical feature, because we can combine both of them as well as to use one or the other one at our convenience.
- The second feature that I would like to mention is its URL rewrite engine. Well, almost the php framework has an URL rewrite engine, but lion uses pure perl-style regular expression to define URLs, which let the framework an extraordinary power in that sense. It’s easy to parse URLs using perl-style regular expression, the problem is to make the inverse operation: To build an URL based on URL components and a regular expression. In that sense, lion has his own de-compiler of perl-style regular expression into URLs (the inverse of determine the regular expression that match an URL)
- Another really valuable feature is the Reverse AJAX. Well, lion has been designed from the beginning to support AJAX (in 2004 AJAX was not as popular as nowadays, but JSRS). Lion is able to handle reverse AJAX against client component, i.e. against a progress bar, a log console, etc…
- Other great feature in lion is the configuration management system, based on .NET section handlers. Well, lion brings more like 20 different big features (like Dependency Injection, RBAC, caching, logging, …) and debuts with a really elegant implementation of each one.
However, IMHO those 4 features may be the most valuable ones and difficult to be found in other php frameworks. - Do you use this framework for all of your PHP development?
- Yes, absolutely. Did you also? :)
- Which other frameworks do you think are good?
- There are really fantastic works out there. I would like to mention the first framework I started working with: mojavi. However, I would like to also mention frameworks like cake-php, prado, symfony, zend-framework, propel, doctrine, seagull, … (well, the list never ends :)
I think that the PHP community is growing day by day, and it’s due in part because of the big amount of good frameworks that are being born day by day. - Are there too many PHP frameworks?
- Hundreds of php frameworks out there is a serious quantity.
However, IMHO this amount of framework is contributing positively in our php community as I have mention in the previous question.