You are on page 1of 13

BENCHMARK

FRAMEWORK PHP
Septembre 2010 Alexandre AUMAITRE aaumaitre@gmail.com

Tribeset - copyright

INTRODUCTION
There are many PHP frameworks but we will just look into a few popular ones for this benchmark DocumentaQon and the developer community are the two main criterias in choosing our soluQon and we ignore many which are unlikely to be of future standards. hSp://en.wikipedia.org/wiki/Php_framework#PHP We can nd two main Framework categories Component libraries PEAR, Ez components, Zend framework, etc. These components give easy soluQons to implement usual funcQons of websites : Acl, AuthenQcaQon, Cache, Captcha, ConguraQon, Currency, Date, Database, Debug, Feed, File, Form, hSp, Layout, Ldap, Log, Mail, Measure, Mime, OpenId, Paginator, Pdf, Session, Soap, Text, TranslaQon, AJAX Architectural frameworks which dene a global architecture of an applicaQon Cake PHP, Symfony and Zend framework in a certain point of vue These frameworks use the MVC (Model, View, Controller) paSern design to structure applicaQons
Tribeset - copyright 2

CONCEPTS
The MVC (Model, View, Controller) paSern design is a generic architecture used to organise applicaQon code
Model : data management View : render data in a user interface Controller : manage data validaQons Browser
OUTPUT INPUT PROCESS

Cake PHP and Symfony architectures are based on the Rails concept (RubyOnRails)
They allow developers to generate an applicaQon based on a funcQonal object oriented concepQon Its possible to add plug-ins as mini applicaQons : forums, CMS, blogs, etc. Rails based Frameworks are data management oriented in comparison to component libraries which are based on the standard web funcQonal paSerns These frameworks need a clear applicaQon concepQon before development can be ecient

Classic web applicaQon architecture

Update CONTROLLER

Browser
VIEWER

MODEL

CRUD generaQon is available in Symfony and more or less in CakePHP


It lets programmers automaQcally create a basic applicaQon template able to Create, Update, Read and Delete data (CRUD) This can be a very producQve tool for development Tribeset - copyright

TEMPLATE

Model-View-Controller web applicaQon representaQon


3

PEAR
PresentaQon This very well known library is an old component library based on PHP4 Its not really a framework because it doesnt give a global structure to an applicaQon It has a very ecient command line installaQon procedure and an update system is used for many other frameworks Community Every PHP developer have already used PEAR. There is no real community but PEAR is of standard knowledge to a developer. Code generaQon There is no code generaQon tool. Extensions Its not possible to add extensions. PEAR is divided into packages which are installed depending on your needs : e.g. users, authenQcaQons Conclusion PEAR is a classic library. Its an old concepQon and not a soluQon for us. SomeQmes its useful to use PEAR components and its installaQon system in conjuncQon with other frameworks
Tribeset - copyright 4

EZ COMPONENT
PresentaQon Ez component is a framework issued from the popular CMS Ez publish Its concepQon is the same as PEAR but its opQmized for PHP5 No innovaQon for this component library but serious technology Community Developers using Ez component are usually users of Ez publish who wanted to add new funcQonaliQes to their CMS Code generaQon There is no code generaQon tool. Extensions At the beginning these components were used to create extensions to Ez publish and no plug-in system is available Conclusion No real reason to choose this framework if its not used with Ez publish

Tribeset - copyright

ZEND FRAMEWORK
PresentaQon
Zend framework is edited by Zend technology which is the commercial structure of PHP Like PEAR or Ez component Zend Framework is more a component library than a Framework but it proposes components to add an MVC structure in your applicaQon design An AJAX component using the popular Javascript Jquery library is available to generate rich client interface It can be used in two dierent manners :
As a component library to add funcQonnaliQes to a classix PHP website As a real framework respecQng a global MVC architecture

Community

Zend is very popular because of the Zend company notoriety It is an up to date technology with a very acQve community There is no code generaQon tool. No extension system is available. Zend is divided into packages which are installed depending of your needs : users, authenQcaQons, ACL, PDF, Forms, etc. Zend Framework is a popular and the most sustainable for developers who dont want an imposed architecture for applicaQons No doubt this technology will be maintained and will evoluate Zend can be useful to add components to exisQng applicaQons : it could be used for Joomla components for exemple For new applicaQons team development need to carefully dene rules to avoid anarchy

Code generaQon Extensions Conclusion

Tribeset - copyright

CAKEPHP
PresentaQon CakePHP was launched in 2005 and is directly inspired by Rails This framework is known to be easy and quick to learn No data object mapping, database tables must respect name convenQons No templaQng system Community Community is very acQve and dynamic Code generaQon There is a command line tool to generate applicaQon code but syntax is not very simple Extensions There are some extensions but no plug-in system Conclusion CakePHP is interesQng for liSle projects because its very easy to learn CakePHP seams to be a simplied Symfony !
Tribeset - copyright 7

SYMFONY
PresentaQon The French framework Symfony was launched in 2006 and is directly inspired by Rails This framework is known to be hard to learn but very powerful and fully integrated with PHP5 An object relaQonal model lets us create full object oriented applicaQon architectures A templaQng system and an integraQon of prototype/script.aculo.us AJAX library lets us create advanced interacQve user interfaces Community Symfony is THE cuqng edge framework and its community is very acQve Code generaQon A powerful command line system lets us create quick applicaQon skeletons Extensions A plug-in system with many classic web applicaQons (forum, blog, CMS, etc.) is available and lets us develop very quickly Conclusion Symfony is the most innovaQve and powerful framework at the moment but is dicult to learn Its a complete framework integraQng all applicaQon aspects : object modeling, applicaQon architecture, user interface, etc.

Tribeset - copyright

CRITERIA FOR CHOICE


PEAR Learning Ez component Zend framework CakePHP Symfony

5/5

easy to learn when you know PHP

5/5

easy to learn when you know PHP

3/5

easy to use component library ; more difficult with MVC

2/5

easy to learn if you understand MVC design patern

1/5

a whole understanding of its concepts is needed to start using it

Sustainability

2/5 1/5

PHP like

2/5 3/5

PHP like

4/5 4/5

php code with MVC

3/5 4/5

Object oriented architecure

4/5
Really sustainable by strong Symfony competencies

Evolution

No real change for a long time

No MVC technology

Slow evolution due to very long development process

The project slowed down due to small developer community

2/5
The most innovative but migration from 1.0 to 1.1 needed to rewrite applications

Community

2/5

Every PHP developer knows PEAR

1/5

Users of Ez publish CMS

5/5

Big community supported by Zend and IBM

2/5

No industrial support for this project

4/5

Project supported by many developers and major web actors : Yahoo, Dailymotion

Documentatio n Functional modeling Productivity

3/5 0/5 1/5

3/5 0/5 2/5

4/5 2/5 4/5

3/5 3/5 4/5

5/5 5/5 5/5

Just MVC patern but no CRUD system

Real object approach but no templating system

A whole object oriented web application design

need a strong code organization

Easy to master but no global object approach

Real productivity when you master the framework

TOTAL

21/45

20/45

34/45

27/45

34/45

CRITERIA FOR CHOICE

Symfony and Zend framework are clearly the most powerful framework of the test. Symfony is focused on efficiency and productivity while Zend insure the best
sustainability and community. CakePHP is an equilibrate Framework adapted for light web projects. But, for this sort of project we usually use the CMS Joomla
Tribeset - copyright 10

Only Zend framework and Symfony are real innovaQve enterprise technology These two Frameworks result to two disQnct phylosophies

SUMMARY

Component library to help web development : database functions, http object, authentification, ACL, PDF generator, etc. MVC architecture to organise application structure Supported by Zend and IBM Easy to learn components No global application generation tools

Data management focused framework Object oriented web application generator inspired by Rails Imposed application structure and no way to change it Very active community of developers with big projects like Yahoo, Dailymotion, etc. One week training is a minimum before using the framework

Tribeset - copyright

11

SUMMARY
Zend is strongly supported by industrial leaders Zend (PHP creator) and IBM are the main sponsor of this technology which ensure future evoluQons Zend can be used on exisQng projects With its component approach, it can be used on exisQng website without rewrite everything : for exemple zend component could be used to make a workow applicaQon in a Joomla website Zend can be used quickly without much training If MVC architecture isnt used, Zend can be quickly used by a PHP programmer To use MVC design greater training is necessary

Symfony increases producQvity Its ability to generate OM (Object models) and CRUD (Create, Read, Update and Delete data) skeleton interfaces in some hours is highly benecial Symfony easily modelizes business cases Its whole object oriented web applicaQon approach lets us directly modelize business needs It reduces concepQon and technical specicaQon Qme Symfony requires a learning investment to be implemented A strong skill on the whole Symfony framework is necessary for development One week training is considered as a minimum to be ecient

The framework choice will depend on the applicaQon type to develop : Flash front end : PEAR, Zend framework, Cake Content management : Zend framework or Symfony Datas management : Symfony

Tribeset - copyright

12

SOURCES
hSp://www.smile.fr/ hSp://www.clever-age.com/ hSp://www.developpez.net/forums/d466747/php/bibliotheques- frameworks/zend-framework-vs-symfony/ hSp://case.oncle-tom.net/2008/06/18/livre-blanc-frameworks- php-presentaQon-et-explicaQons/ hSp://cakephp.org/ hSp://www.symfony-project.org/ hSp://framework.zend.com/

Tribeset - copyright

13