Академический Документы
Профессиональный Документы
Культура Документы
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
Update CONTROLLER
Browser
VIEWER
MODEL
TEMPLATE
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
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
5/5
5/5
3/5
2/5
1/5
Sustainability
2/5 1/5
PHP like
2/5 3/5
PHP like
4/5 4/5
3/5 4/5
4/5
Really sustainable by strong Symfony competencies
Evolution
No MVC technology
2/5
The most innovative but migration from 1.0 to 1.1 needed to rewrite applications
Community
2/5
1/5
5/5
2/5
4/5
Project supported by many developers and major web actors : Yahoo, Dailymotion
TOTAL
21/45
20/45
34/45
27/45
34/45
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