comparing web frameworks
DESCRIPTION
Comparing Web Frameworks. Dr. Mohammad Iqbal Thanks to ADITYA SENGUPTA. Web Frameworks?. PHP Frameworks Zend CodeIgniter Symfony CakePHP Yii Kohana Drupal * Wordpress * Ruby on Rails Django. Why PHP? Why not PHP?. It’s easy: Easy to learn Easy to run - PowerPoint PPT PresentationTRANSCRIPT
D R . M O H A M M A D I Q B A L
T H A N K S T O A D I T Y A S E N G U P T A
Comparing Web Frameworks
Web Frameworks?
PHP Frameworks Zend CodeIgniter Symfony CakePHP Yii Kohana Drupal* Wordpress*
Ruby on RailsDjango
Why PHP? Why not PHP?
It’s easy: Easy to learn Easy to run Easy to find PHP developers
75% of web sites run on PHPPowerfulExtensibleOpen source
Comparing Frameworks
Default installation as per instructions on the official website of the framework Except using SQLite as opposed to MySQL as the
database engineBasic website as per the tutorial/getting
started document for the frameworkLogin/Authentication functionality added if
not available in the default tutorialPerformance testing for one static page, a
large dynamic page and a login page
Zend Framework
Open source (New BSD License)Object OrientedM-V-C ArchitectureRequires PHP 5.2.4 or later
Optionally PHPUnit 3.0Database agnostic
Zend Framework
Provides a console tool (zf) for Rapid Development
Automagically generates models, controllers, layouts and views
Does not automagically generate SQLDoes not automagically create CRUD
functionsPoor documentationDefault tutorials don’t provide Authentication
or Security related examples
CodeIgniter
Is not completely open source (CodeIgniter license) Requires developers to indemnify the company
Object OrientedM-V-C ArchitectureRequires PHP 5.1.6Database agnostic
Does not support SQLite3 natively
CodeIgniter
No console toolNo automagic generation for any functionalityExtremely small download (2.2MB)Does not provide a text tutorial on the site (only
video tutorials)Tutorials on the site use older versions of
CodeIgniter class xyz extends Controller (v 1.x) class xyz extends CI_Controller (v 2.x)
Default tutorials don’t provide Authentication or Security related examples
Symfony (1.4)
Open source (MIT license)Object OrientedM-V-C ArchitectureRequires PHP 5.2.4
Symfony2 will require PHP 5.3.2Database agnostic
Uses doctrine or propel for the Object Relational Mapping (ORM) layter
Symfony (1.4)
Extremely powerful console tool (symfony)Automagically generates all elements including
sql queries (from YAML source)Provides extremely detailed tutorials for all
functionalityTutorials work as documentedThe basic tutorial includes admin functionality
as well as authentication and security information
Plugins are extremely easy to install using console tools.
CakePHP
Open source (MIT license)Object OrientedM-V-C ArchitectureWorks with PHP4 (4.3.2)Database agnostic
Does not natively support SQLite3
CakePHP
Console tool (cake)cake bake generates code if a database is
defined including models, views and controllers for the tables in the database
cake schema is used for database backup/restore functionality
Separate tutorials for a weblog and ACL controlled applications.
Tutorials work as documented
Yii Framework
Stands for Yes It Is!Open source (BSD license)Object OrientedM-V-C ArchitectureRequires PHP 5.3Database agnostic
Yii Framework
Powerful console tool (yiic)Does not generate SQLUses Gii (web based code generator) for
CRUD operationsDefault yii application as generated by yiic
includes authentication functionality and three basic pages
Tutorials are regularly updated
Kohana
Open Source (BSD license)Originally based on CodeIgniter, but no
longerObject OrientedM-V-C ArchitectureRequires PHP 5.1.6Database agnostic
Does not support SQLite3 natively
Kohana
No console toolNo automagic generation for any
functionalityExtremely small download (1.1MB) even
smaller than CodeIgniterDocumentation is poor. Most basic
information like database connectivity is not available on the user guide for version 3.1.
Tutorials are extremely limited (no tutorials for v3.1)
Ruby on Rails
Open source (MIT license)Object OrientedM-V-C ArchitectureProvides its own server but using Apache
with Passenger may uninstall PHP5 on Ubuntu
Database agnostic
Ruby on Rails
Multiple console tools (rails and rake)Databases can be managed via console tools
with YAML configuration filesAutomagically generated code includes
CRUD functionality however the Rails Guide notes that experienced Ruby developers rarely use it
Default tutorials use plain http authentication rather than database driven authentication
Django
Open source (BSD license)Object OrientedModel-Template-View design (same as MVC)Provides its own server but can integrate
with Apache or any other serverDatabase agnostic
Django
Uses python manage.py as a console toolAutomagically generates sql and admin
functionalityCan use console tools to manipulate dataTutorial is basic but well written. There is a
“coming soon” at the end of the tutorialAdmin functions are behind login pages, but
the tutorial does not show how to create login pages for the public site
Static Page
0
2000
4000
6000
8000
10000
12000
14000
16000
18000
0
1000
2000
3000
4000
5000
6000
Average (ms)Median (ms)Throughput (req/min)
User/Administrator Login
0
5000
10000
15000
20000
25000
0
500
1000
1500
2000
2500
3000
3500
4000
4500
Average
Median
Throughput
101 Blog Entries on a Single Page
Pure
HTM
L
Pure
PHP
Zend
CodeI
gnite
r
Sym
fony
CakeP
HP Yi
i
Kohan
a
Wor
dpre
ss
Ruby
Djang
o0
10000
20000
30000
40000
50000
60000
0
500
1000
1500
2000
2500
3000
3500
Avg
Median
Throughput