SlideShare a Scribd company logo
ADITYA SENGUPTAScaling PHP in the cloudBangaloreJuly 9, 2011Comparing Web Frameworks
Web Frameworks?PHP FrameworksZendCodeIgniterSymfonyCakePHPYiiKohanaDrupal*Wordpress*Ruby on RailsDjango
Why PHP? Why not PHP?It’s easy:Easy to learnEasy to runEasy to find PHP developers75% of web sites run on PHPPowerfulExtensibleOpen source
Why PHP? Why not PHP?xkcd.com/292 by Randall Munroe
Comparing FrameworksDefault installation as per instructions on the official website of the frameworkExcept 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
LicenseREQUIREMENTSCONSOLE TOOLSDocumentationTUTORIALSFunctionality Compared
Zend FrameworkOpen source (New BSD License)Object OrientedM-V-C ArchitectureRequires PHP 5.2.4 or laterOptionally PHPUnit 3.0Database agnostic
Zend FrameworkProvides a console tool (zf) for Rapid DevelopmentAutomagically generates models, controllers, layouts and viewsDoes not automagically generate SQLDoes not automagically create CRUD functionsPoor documentationDefault tutorials don’t provide Authentication or Security related examples
CodeIgniterIs not completely open source (CodeIgniter license)Requires developers to indemnify the companyObject OrientedM-V-C ArchitectureRequires PHP 5.1.6Database agnostic Does not support SQLite3 natively
CodeIgniterNo 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 CodeIgniterclass 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 informationPlugins are extremely easy to install using console tools.
CakePHPOpen source (MIT license)Object OrientedM-V-C ArchitectureWorks with PHP4 (4.3.2)Database agnostic Does not natively support SQLite3
CakePHPConsole tool (cake)cake bake generates code if a database is defined including models, views and controllers for the tables in the databasecake schema is used for database backup/restore functionalitySeparate tutorials for a weblog and ACL controlled applications.Tutorials work as documented
Yii FrameworkStands for Yes It Is!Open source (BSD license)Object OrientedM-V-C ArchitectureRequires PHP 5.3Database agnostic
Yii FrameworkPowerful 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 pagesTutorials are regularly updated
KohanaOpen Source (BSD license)Originally based on CodeIgniter, but no longerObject OrientedM-V-C ArchitectureRequires PHP 5.1.6Database agnostic Does not support SQLite3 natively
KohanaNo 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 RailsUser Friendly (27 June 2008) by J.D. “Illiad” Frazer
Ruby on RailsOpen source (MIT license)Object OrientedM-V-C ArchitectureProvides its own server but using Apache with Passenger may uninstall PHP5 on UbuntuDatabase agnostic
Ruby on RailsMultiple 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 itDefault tutorials use plain http authentication rather than database driven authentication
xkcd.com/353
DjangoOpen 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
DjangoUses 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
Jakarta Jmeter 2.4VMWARE workstation 7.1Windows 7 BasicPerformance Compared
Static Page
User/Administrator Login
101 Blog Entries on a Single Page
QUESTIONS?That’s all folks!
@aditsengprofiles.google.com/aditseng

More Related Content

PPT
Php Frameworks
PPTX
Java in Mule
PPTX
Java useful in Mule
PPTX
PPTX
Demystifying Selenium framework
PPTX
PHP Framework Battle
PPT
Springboot introduction
PDF
Laravel and CodeIgniter: pros & cons
Php Frameworks
Java in Mule
Java useful in Mule
Demystifying Selenium framework
PHP Framework Battle
Springboot introduction
Laravel and CodeIgniter: pros & cons

What's hot (20)

PPTX
Groovy features
PPTX
PHP framework difference
PPTX
PHP Frameworks & Introduction to CodeIgniter
PPTX
Test Automation with Twist and Sahi
PPT
Os Mcmahan
PPTX
Lecture java basics
PDF
Laravel 9 is now out – how is an improvement over its predecessors
PPT
Java2 platform
PPT
Web Test Automation with Selenium
PPTX
A site in 15 minutes with yii
PPTX
Laravel
PPT
Java Presentation
PPTX
Lecture android best practices
PDF
DOCX
Selenium interview Q&A
PPTX
Spring presentation
PDF
Selenium Webdriver Interview Questions
PPTX
Introduction to .NET Framework
PDF
Php Conference Brazil - Phalcon Giant Killer
Groovy features
PHP framework difference
PHP Frameworks & Introduction to CodeIgniter
Test Automation with Twist and Sahi
Os Mcmahan
Lecture java basics
Laravel 9 is now out – how is an improvement over its predecessors
Java2 platform
Web Test Automation with Selenium
A site in 15 minutes with yii
Laravel
Java Presentation
Lecture android best practices
Selenium interview Q&A
Spring presentation
Selenium Webdriver Interview Questions
Introduction to .NET Framework
Php Conference Brazil - Phalcon Giant Killer
Ad

Similar to Comparing web frameworks (20)

PPT
Introduction to CodeIgniter
PPTX
What's the "right" PHP Framework?
PPTX
Php Web Frameworks
PPT
My cool new Slideshow!
PPTX
MVC & CodeIgniter
PPTX
Building A Platform From Open Source At Yahoo
PDF
Introducing symfony
ODP
A Good PHP Framework For Beginners Like Me!
PDF
Top 6 php framework
PPTX
PHP Web Frameworks Introduction
PDF
Symfony 2.0 on PHP 5.3
PDF
PHP Frameworks Review - Mar 19 2015
PDF
Top 6 leading PHP frameworks for web development
PPT
Symfony - A Bird's Eye View
PDF
The distinct advantages of using PHP-Symfony Framework
PPTX
Laravel vs CodeIgniter: Which Is the Best PHP Framework for 2025?
PDF
Top 10 best PHP frameworks for web development.pdf
PDF
Yii vs codeigneiter
PDF
Codeigniter VS Cakephp Which is Better for Web Development.pdf
PDF
Best PHP Frameworks
Introduction to CodeIgniter
What's the "right" PHP Framework?
Php Web Frameworks
My cool new Slideshow!
MVC & CodeIgniter
Building A Platform From Open Source At Yahoo
Introducing symfony
A Good PHP Framework For Beginners Like Me!
Top 6 php framework
PHP Web Frameworks Introduction
Symfony 2.0 on PHP 5.3
PHP Frameworks Review - Mar 19 2015
Top 6 leading PHP frameworks for web development
Symfony - A Bird's Eye View
The distinct advantages of using PHP-Symfony Framework
Laravel vs CodeIgniter: Which Is the Best PHP Framework for 2025?
Top 10 best PHP frameworks for web development.pdf
Yii vs codeigneiter
Codeigniter VS Cakephp Which is Better for Web Development.pdf
Best PHP Frameworks
Ad

Recently uploaded (20)

PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
Cloud computing and distributed systems.
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Modernizing your data center with Dell and AMD
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Electronic commerce courselecture one. Pdf
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Encapsulation theory and applications.pdf
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Network Security Unit 5.pdf for BCA BBA.
Review of recent advances in non-invasive hemoglobin estimation
Cloud computing and distributed systems.
20250228 LYD VKU AI Blended-Learning.pptx
Modernizing your data center with Dell and AMD
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Electronic commerce courselecture one. Pdf
Agricultural_Statistics_at_a_Glance_2022_0.pdf
NewMind AI Monthly Chronicles - July 2025
Dropbox Q2 2025 Financial Results & Investor Presentation
Mobile App Security Testing_ A Comprehensive Guide.pdf
MYSQL Presentation for SQL database connectivity
Building Integrated photovoltaic BIPV_UPV.pdf
Advanced methodologies resolving dimensionality complications for autism neur...
The AUB Centre for AI in Media Proposal.docx
Encapsulation theory and applications.pdf
Diabetes mellitus diagnosis method based random forest with bat algorithm
Network Security Unit 5.pdf for BCA BBA.

Comparing web frameworks

  • 1. ADITYA SENGUPTAScaling PHP in the cloudBangaloreJuly 9, 2011Comparing Web Frameworks
  • 3. Why PHP? Why not PHP?It’s easy:Easy to learnEasy to runEasy to find PHP developers75% of web sites run on PHPPowerfulExtensibleOpen source
  • 4. Why PHP? Why not PHP?xkcd.com/292 by Randall Munroe
  • 5. Comparing FrameworksDefault installation as per instructions on the official website of the frameworkExcept 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
  • 7. Zend FrameworkOpen source (New BSD License)Object OrientedM-V-C ArchitectureRequires PHP 5.2.4 or laterOptionally PHPUnit 3.0Database agnostic
  • 8. Zend FrameworkProvides a console tool (zf) for Rapid DevelopmentAutomagically generates models, controllers, layouts and viewsDoes not automagically generate SQLDoes not automagically create CRUD functionsPoor documentationDefault tutorials don’t provide Authentication or Security related examples
  • 9. CodeIgniterIs not completely open source (CodeIgniter license)Requires developers to indemnify the companyObject OrientedM-V-C ArchitectureRequires PHP 5.1.6Database agnostic Does not support SQLite3 natively
  • 10. CodeIgniterNo 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 CodeIgniterclass xyz extends Controller (v 1.x)class xyz extends CI_Controller (v 2.x)Default tutorials don’t provide Authentication or Security related examples
  • 11. 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
  • 12. 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 informationPlugins are extremely easy to install using console tools.
  • 13. CakePHPOpen source (MIT license)Object OrientedM-V-C ArchitectureWorks with PHP4 (4.3.2)Database agnostic Does not natively support SQLite3
  • 14. CakePHPConsole tool (cake)cake bake generates code if a database is defined including models, views and controllers for the tables in the databasecake schema is used for database backup/restore functionalitySeparate tutorials for a weblog and ACL controlled applications.Tutorials work as documented
  • 15. Yii FrameworkStands for Yes It Is!Open source (BSD license)Object OrientedM-V-C ArchitectureRequires PHP 5.3Database agnostic
  • 16. Yii FrameworkPowerful 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 pagesTutorials are regularly updated
  • 17. KohanaOpen Source (BSD license)Originally based on CodeIgniter, but no longerObject OrientedM-V-C ArchitectureRequires PHP 5.1.6Database agnostic Does not support SQLite3 natively
  • 18. KohanaNo 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)
  • 19. Ruby on RailsUser Friendly (27 June 2008) by J.D. “Illiad” Frazer
  • 20. Ruby on RailsOpen source (MIT license)Object OrientedM-V-C ArchitectureProvides its own server but using Apache with Passenger may uninstall PHP5 on UbuntuDatabase agnostic
  • 21. Ruby on RailsMultiple 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 itDefault tutorials use plain http authentication rather than database driven authentication
  • 23. DjangoOpen 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
  • 24. DjangoUses 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
  • 25. Jakarta Jmeter 2.4VMWARE workstation 7.1Windows 7 BasicPerformance Compared
  • 28. 101 Blog Entries on a Single Page

Editor's Notes

  • #5: Also, PHP is not considered “cool”
  • #9: CRUD = create/read/update/deleteDocumentation examples don’t work as is.Auth and security examples don’t work without some extra time figuring out how the Auth functionality works.
  • #13: SQL queries are not absolutely correct for SQLite (autoincrement)