A Good PHP Frameworks for Beginners Like Me! 13 April 2010 Muhammad Ghazali http://muhammadghazali.web.id/blog
A Good PHP Frameworks for Beginners Like Me!
13 April 2010
Muhammad Ghazalihttp://muhammadghazali.web.id/blog
2
About Me
3
About Me
● A Java programmer that want to know how create a web app using PHP● A (not really) new comers to the PHP world!● We can discuss this topic by @muhghazali or [email protected]
4
Agenda
5
Agenda● What is framework ● Framework features ● Why framework● MVC frameworks written in PHP● Top 10 Hot PHP Frameworks● Top 10 Ranking PHP Frameworks● My Criteria● My Options● Why CodeIgniter● Why Kohana● Why Yii● My 1st step
6
What is framework
7
What is framework
I'm talking about a software framework...
8
What is framework
A skeleton of an application into which developers plug in their code and provides most of the common functionality. E. Gamma, et al., "Design Patterns", AddisonWesley, 1995
9
What is framework
A framework is a set of common and prefabricated software building blocks that
programmers can use, extend or customize for specific computing solutions. With frameworks
developers do not have to start from scratch each time they write an application. Frameworks are
built from collection of objects so both the design and code of the framework may be reused.
JavaFramework. [1]
10
Framework features
11
Framework features
Software frameworks have distinguishing features that separate them from libraries or normal user
applications. [2]
12
Framework features
inversion of control The overall program's flow of control is not dictated by the caller, but by the framework. [2]
13
Framework features
default behavior A framework has a default behavior. This default behavior must actually be some useful behavior and not a series of noops. [2]
14
Framework features
extensibility A framework can be extended by the user usually by selective overriding or specialized by user code providing specific functionality. [2]
15
Framework features
nonmodifiable framework code The framework code, in general, is not allowed to be modified. Users can extend the framework, but not modify its code. [2]
16
Why framework
17
Why framework
● It makes it easier to work with complex technologies. [14]● It ties together a bunch of discrete objects/components into something more useful. [14]● It forces the team (or just me) to implement code in a way that promotes consistent coding, fewer bugs, and more flexible applications. [14]● Everyone can easily test and debug the code, even code that they didn't write. [14]
18
MVC Frameworks Written in PHP
19
MVC Frameworks Written in PHP Web Application Component ToolkitAchievo ATK
Akelos PHP FrameworkAmodules3
AmbivalenceAukyla PHP Framework
BinarycloudBiscuit
BitweaverCaffeine Web Framework
CakePHPCastorCgiapp
20
MVC Frameworks Written in PHPCodeIgniterCopix
Core Enterprise PHPFastFrameEZ PublishFusebox
FuseLogicHalo
KohanaKonstruktKumbiaKrysalis
Inek
21
MVC Frameworks Written in PHPInnomaticInterJinn
IsmoJelix
KolibriLimb PHP Web Application Framework
LimonadeLogiCreate
MedusaMojavi
NavigatorNette
Nexista
22
MVC Frameworks Written in PHPP4APHP on TraxPHP WorkPhpDronePHPulsePhpMVC
PhpPeanutsPhramePopoonPradoProntoQcodoRwfphp
23
MVC Frameworks Written in PHPSamstyle PHP FrameworkSilverStripe
SeagullSitellite
SolarPHPSqeletor
StudsStruts4phpSymfonyTaniPHP
Tigermouseweb.frameworkWolfden CMF
24
MVC Frameworks Written in PHP
XatafaceYellow Duck Framework
Zend FrameworkZephyr Framework
ZNFZoop Framework
25
Top 10 Hot PHP Frameworks
26
Top 10 Hot PHP Frameworks
CodeIgniterYii
CakePHPZend
SymfonyPHPDevShell
PradoAkelosZoop
QPHP
27
Top 10 Ranking PHP Frameworks
28
Top 10 Ranking PHP Frameworks
YiiCodeIgniter
PHPDevShellSymfonyCakePHP
AkelosPradoZendZoop
EZ Components
29
My criteria
30
My criteria
Simplicity
Flexibility
Extensive documentations and tutorials
A large community
Easy to learn for beginner (in the PHP world),
like me!
31
My options
32
My options
Disclaimer: My judgement based on what they say about the frameworks, see the reference page for more details.
33
My options
CodeIgniter http://codeigniter.com/ Kohana http://www.kohanaphp.com/
Yii http://www.yiiframework.com/
34
Why CodeIgniter
35
Why CodeIgniter● Easy to install [13]
● Active community [9] [10] [11]
● Extensive documentation and tutorials
● Flexible [13]
● Offers query builders and database manipulation
classes
● Has a very nice Input Class that sanitizes some
of the input [13]
36
Why Kohana
37
Why Kohana
● Easy to install
● Strict PHP5 OOP [6]
● No dependencies on PECL extensions or PEAR libraries
● Good documentation and tutorials
● Cascading file system (offers high level modularity) [7]
● Exceptionally well configuration system [7]
● Builtin Auth module [7]
● Kohana has a good logging class [7]
38
Why Yii
39
Why Yii● Easy to install [13]
● Flexible [13]
● Claims to have very highperformance [8]
● Strict PHP5 OOP
● Builtin support for both authentication and
authorisation
● Provides a much more powerful and flexible session
class
40
My 1st step
41
My 1st step
I will graspI will grasp
CodeIgniterCodeIgniter1st1st
42
Reference
1. http://www.jfwk.com/what_is.html, retrieved 8 April 20102. “Software Framework”, http://en.wikipedia.org/wiki/Software_framework, retrieved 7 April 20103. “Web Application Framework”, http://en.wikipedia.org/wiki/Web_application_framework4. “MVC Frameworks written in PHP”,http://www.phpwact.org/php/mvc_frameworks, retrieved 7 April 20105. “Top 10 PHP Frameworks”, http://www.phpframeworks.com/top10phpframeworks/, retrieved 7 April 2010
43
Reference
6. “Notes on Choosing a PHP Framework: A Quick Comparison of CodeIgniter and Kohana”, http://www.beyondcoding.com/2008/02/23/notesonchoosingaphpframeworkaquickcomparisonofcodeigniterandkohana/7. “Choosing a PHP Framework Round 2: Yii vs Kohana vs CodeIgniter”, http://www.beyondcoding.com/2009/03/02/choosingaphpframeworkround2yiivskohanavscodeigniter/8. “Performance of Yii”, http://www.yiiframework.com/performance/, retrieved 8 April 20109. “CodeIgniter forum”,http://codeigniter.com/forums/10. “CodeIgniter bug tracker”,a http://codeigniter.com/bug_tracker/11. “CodeIgniter wiki page”, http://codeigniter.com/wiki/12. “A Guide to PHP Frameworks”, http://php.dzone.com/articles/guidephpframeworks
44
Reference
13. “Comparison of PHP frameworks – Part I”, http://daniel.carrera.bz/2009/01/comparisonofphpframeworksparti/14. “What Is A Framework?”, http://www.codeproject.com/KB/architecture/WhatIsAFramework.aspx
45
Q & A
??