SlideShare a Scribd company logo
1 of 30
ADITYA SENGUPTA Scaling PHP in the cloud Bangalore July 9, 2011 Comparing Web Frameworks
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 Easy to find PHP developers 75% of web sites run on PHP Powerful Extensible Open source
Why PHP? Why not PHP? xkcd.com/292 by Randall Munroe
Comparing Frameworks Default installation as per instructions on the official website of the framework Except using SQLite as opposed to MySQL as the database engine Basic website as per the tutorial/getting started document for the framework Login/Authentication functionality added if not available in the default tutorial Performance testing for one static page, a large dynamic page and a login page
License REQUIREMENTS CONSOLE TOOLS Documentation TUTORIALS Functionality Compared
Zend Framework Open source (New BSD License) Object Oriented M-V-C Architecture Requires PHP 5.2.4 or later Optionally PHPUnit 3.0 Database agnostic
Zend Framework Provides a console tool (zf) for Rapid Development Automagically generates models, controllers, layouts and views Does not automagically generate SQL Does not automagically create CRUD functions Poor documentation Default tutorials don’t provide Authentication or Security related examples
CodeIgniter Is not completely open source (CodeIgniter license) Requires developers to indemnify the company Object Oriented M-V-C Architecture Requires PHP 5.1.6 Database agnostic  Does not support SQLite3 natively
CodeIgniter No console tool No automagic generation for any functionality Extremely 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 Oriented M-V-C Architecture Requires PHP 5.2.4  Symfony2 will require PHP 5.3.2 Database 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 functionality Tutorials work as documented The 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 Oriented M-V-C Architecture Works 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 Oriented M-V-C Architecture Requires PHP 5.3 Database agnostic
Yii Framework Powerful console tool (yiic) Does not generate SQL Uses Gii (web based code generator) for CRUD operations Default 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 longer Object Oriented M-V-C Architecture Requires PHP 5.1.6 Database agnostic  Does not support SQLite3 natively
Kohana No console tool No automagic generation for any functionality Extremely small download (1.1MB) even smaller than CodeIgniter Documentation 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 User Friendly (27 June 2008) by J.D. “Illiad” Frazer
Ruby on Rails Open source (MIT license) Object Oriented M-V-C Architecture Provides 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 files Automagically 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
xkcd.com/353
Django Open source (BSD license) Object Oriented Model-Template-View design (same as MVC) Provides its own server but can integrate with Apache or any other server Database agnostic
Django Uses python manage.py as a console tool Automagically generates sql and admin functionality Can use console tools to manipulate data Tutorial is basic but well written. There is a “coming soon” at the end of the tutorial Admin functions are behind login pages, but the tutorial does not show how to create login pages for the public site
Jakarta Jmeter 2.4 VMWARE workstation 7.1 Windows 7 Basic Performance 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

What's hot

PHP framework difference
PHP framework differencePHP framework difference
PHP framework differenceiScripts
 
PHP Frameworks & Introduction to CodeIgniter
PHP Frameworks & Introduction to CodeIgniterPHP Frameworks & Introduction to CodeIgniter
PHP Frameworks & Introduction to CodeIgniterJamshid Hashimi
 
Test Automation with Twist and Sahi
Test Automation with Twist and SahiTest Automation with Twist and Sahi
Test Automation with Twist and Sahiericjamesblackburn
 
Lecture java basics
Lecture   java basicsLecture   java basics
Lecture java basicseleksdev
 
Laravel 9 is now out – how is an improvement over its predecessors
Laravel 9 is now out – how is an improvement over its predecessorsLaravel 9 is now out – how is an improvement over its predecessors
Laravel 9 is now out – how is an improvement over its predecessorsMoon Technolabs Pvt. Ltd.
 
Java2 platform
Java2 platformJava2 platform
Java2 platformSajan Sahu
 
Web Test Automation with Selenium
Web Test Automation with SeleniumWeb Test Automation with Selenium
Web Test Automation with Seleniumvivek_prahlad
 
A site in 15 minutes with yii
A site in 15 minutes with yiiA site in 15 minutes with yii
A site in 15 minutes with yiiAndy Kelk
 
Java Presentation
Java PresentationJava Presentation
Java Presentationpm2214
 
Lecture android best practices
Lecture   android best practicesLecture   android best practices
Lecture android best practiceseleksdev
 
Selenium interview Q&A
Selenium interview Q&ASelenium interview Q&A
Selenium interview Q&APavan Kumar
 
Selenium Webdriver Interview Questions
Selenium Webdriver Interview QuestionsSelenium Webdriver Interview Questions
Selenium Webdriver Interview QuestionsJai Singh
 
Php Conference Brazil - Phalcon Giant Killer
Php Conference Brazil - Phalcon Giant KillerPhp Conference Brazil - Phalcon Giant Killer
Php Conference Brazil - Phalcon Giant KillerJackson F. de A. Mafra
 

What's hot (20)

Groovy features
Groovy featuresGroovy features
Groovy features
 
Java notes
Java notesJava notes
Java notes
 
PHP framework difference
PHP framework differencePHP framework difference
PHP framework difference
 
PHP Frameworks & Introduction to CodeIgniter
PHP Frameworks & Introduction to CodeIgniterPHP Frameworks & Introduction to CodeIgniter
PHP Frameworks & Introduction to CodeIgniter
 
Test Automation with Twist and Sahi
Test Automation with Twist and SahiTest Automation with Twist and Sahi
Test Automation with Twist and Sahi
 
Os Mcmahan
Os McmahanOs Mcmahan
Os Mcmahan
 
Lecture java basics
Lecture   java basicsLecture   java basics
Lecture java basics
 
Laravel 9 is now out – how is an improvement over its predecessors
Laravel 9 is now out – how is an improvement over its predecessorsLaravel 9 is now out – how is an improvement over its predecessors
Laravel 9 is now out – how is an improvement over its predecessors
 
Java2 platform
Java2 platformJava2 platform
Java2 platform
 
Web Test Automation with Selenium
Web Test Automation with SeleniumWeb Test Automation with Selenium
Web Test Automation with Selenium
 
A site in 15 minutes with yii
A site in 15 minutes with yiiA site in 15 minutes with yii
A site in 15 minutes with yii
 
Laravel
LaravelLaravel
Laravel
 
Java Presentation
Java PresentationJava Presentation
Java Presentation
 
Lecture android best practices
Lecture   android best practicesLecture   android best practices
Lecture android best practices
 
Jenkins
JenkinsJenkins
Jenkins
 
Selenium interview Q&A
Selenium interview Q&ASelenium interview Q&A
Selenium interview Q&A
 
Spring presentation
Spring presentationSpring presentation
Spring presentation
 
Selenium Webdriver Interview Questions
Selenium Webdriver Interview QuestionsSelenium Webdriver Interview Questions
Selenium Webdriver Interview Questions
 
Introduction to .NET Framework
Introduction to .NET FrameworkIntroduction to .NET Framework
Introduction to .NET Framework
 
Php Conference Brazil - Phalcon Giant Killer
Php Conference Brazil - Phalcon Giant KillerPhp Conference Brazil - Phalcon Giant Killer
Php Conference Brazil - Phalcon Giant Killer
 

Similar to Comparing web frameworks

eXo Platform SEA - Play Framework Introduction
eXo Platform SEA - Play Framework IntroductioneXo Platform SEA - Play Framework Introduction
eXo Platform SEA - Play Framework Introductionvstorm83
 
Robot Framework Introduction & Sauce Labs Integration
Robot Framework Introduction & Sauce Labs IntegrationRobot Framework Introduction & Sauce Labs Integration
Robot Framework Introduction & Sauce Labs IntegrationSauce Labs
 
A Good PHP Framework For Beginners Like Me!
A Good PHP Framework For Beginners Like Me!A Good PHP Framework For Beginners Like Me!
A Good PHP Framework For Beginners Like Me!Muhammad Ghazali
 
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013Mack Hardy
 
PHP Frameworks and CodeIgniter
PHP Frameworks and CodeIgniterPHP Frameworks and CodeIgniter
PHP Frameworks and CodeIgniterKHALID C
 
Net Fundamentals
Net FundamentalsNet Fundamentals
Net FundamentalsAli Taki
 
Frankenstein's IDE: NetBeans and OSGi
Frankenstein's IDE: NetBeans and OSGiFrankenstein's IDE: NetBeans and OSGi
Frankenstein's IDE: NetBeans and OSGiToni Epple
 
A Microsoft primer for PHP devs
A Microsoft primer for PHP devsA Microsoft primer for PHP devs
A Microsoft primer for PHP devsguest0a62e8
 
Codeigniter Introduction
Codeigniter IntroductionCodeigniter Introduction
Codeigniter IntroductionAshfan Ahamed
 
Yii2 by Peter Jack Kambey
Yii2 by Peter Jack KambeyYii2 by Peter Jack Kambey
Yii2 by Peter Jack Kambeyk4ndar
 
Introduction to CodeIgniter
Introduction to CodeIgniterIntroduction to CodeIgniter
Introduction to CodeIgniterkindafunnylookin
 
SilverStripe Meetup 03/03/2011
SilverStripe Meetup 03/03/2011SilverStripe Meetup 03/03/2011
SilverStripe Meetup 03/03/2011Paul Rogers
 
SilverStripe Meetup Presentation 03/03/2011
SilverStripe Meetup Presentation 03/03/2011SilverStripe Meetup Presentation 03/03/2011
SilverStripe Meetup Presentation 03/03/2011Paul Rogers
 

Similar to Comparing web frameworks (20)

Lamp Zend Security
Lamp Zend SecurityLamp Zend Security
Lamp Zend Security
 
eXo Platform SEA - Play Framework Introduction
eXo Platform SEA - Play Framework IntroductioneXo Platform SEA - Play Framework Introduction
eXo Platform SEA - Play Framework Introduction
 
Robot Framework Introduction & Sauce Labs Integration
Robot Framework Introduction & Sauce Labs IntegrationRobot Framework Introduction & Sauce Labs Integration
Robot Framework Introduction & Sauce Labs Integration
 
Php Framework
Php FrameworkPhp Framework
Php Framework
 
Php framework
Php frameworkPhp framework
Php framework
 
A Good PHP Framework For Beginners Like Me!
A Good PHP Framework For Beginners Like Me!A Good PHP Framework For Beginners Like Me!
A Good PHP Framework For Beginners Like Me!
 
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
 
PHP Frameworks and CodeIgniter
PHP Frameworks and CodeIgniterPHP Frameworks and CodeIgniter
PHP Frameworks and CodeIgniter
 
Net Fundamentals
Net FundamentalsNet Fundamentals
Net Fundamentals
 
P H P Framework
P H P  FrameworkP H P  Framework
P H P Framework
 
Frankenstein's IDE: NetBeans and OSGi
Frankenstein's IDE: NetBeans and OSGiFrankenstein's IDE: NetBeans and OSGi
Frankenstein's IDE: NetBeans and OSGi
 
A Microsoft primer for PHP devs
A Microsoft primer for PHP devsA Microsoft primer for PHP devs
A Microsoft primer for PHP devs
 
Codeigniter Introduction
Codeigniter IntroductionCodeigniter Introduction
Codeigniter Introduction
 
Robot framework
Robot frameworkRobot framework
Robot framework
 
Php Web Frameworks
Php Web FrameworksPhp Web Frameworks
Php Web Frameworks
 
Yii2 by Peter Jack Kambey
Yii2 by Peter Jack KambeyYii2 by Peter Jack Kambey
Yii2 by Peter Jack Kambey
 
Introduction to CodeIgniter
Introduction to CodeIgniterIntroduction to CodeIgniter
Introduction to CodeIgniter
 
SilverStripe Meetup 03/03/2011
SilverStripe Meetup 03/03/2011SilverStripe Meetup 03/03/2011
SilverStripe Meetup 03/03/2011
 
SilverStripe Meetup Presentation 03/03/2011
SilverStripe Meetup Presentation 03/03/2011SilverStripe Meetup Presentation 03/03/2011
SilverStripe Meetup Presentation 03/03/2011
 
Top 6 php framework
Top 6 php frameworkTop 6 php framework
Top 6 php framework
 

Recently uploaded

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 

Recently uploaded (20)

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 

Comparing web frameworks

  • 1. ADITYA SENGUPTA Scaling PHP in the cloud Bangalore July 9, 2011 Comparing Web Frameworks
  • 2. Web Frameworks? PHP Frameworks Zend CodeIgniter Symfony CakePHP Yii Kohana Drupal* Wordpress* Ruby on Rails Django
  • 3. 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 PHP Powerful Extensible Open source
  • 4. Why PHP? Why not PHP? xkcd.com/292 by Randall Munroe
  • 5. Comparing Frameworks Default installation as per instructions on the official website of the framework Except using SQLite as opposed to MySQL as the database engine Basic website as per the tutorial/getting started document for the framework Login/Authentication functionality added if not available in the default tutorial Performance testing for one static page, a large dynamic page and a login page
  • 6. License REQUIREMENTS CONSOLE TOOLS Documentation TUTORIALS Functionality Compared
  • 7. Zend Framework Open source (New BSD License) Object Oriented M-V-C Architecture Requires PHP 5.2.4 or later Optionally PHPUnit 3.0 Database agnostic
  • 8. Zend Framework Provides a console tool (zf) for Rapid Development Automagically generates models, controllers, layouts and views Does not automagically generate SQL Does not automagically create CRUD functions Poor documentation Default tutorials don’t provide Authentication or Security related examples
  • 9. CodeIgniter Is not completely open source (CodeIgniter license) Requires developers to indemnify the company Object Oriented M-V-C Architecture Requires PHP 5.1.6 Database agnostic Does not support SQLite3 natively
  • 10. CodeIgniter No console tool No automagic generation for any functionality Extremely 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
  • 11. Symfony (1.4) Open source (MIT license) Object Oriented M-V-C Architecture Requires PHP 5.2.4 Symfony2 will require PHP 5.3.2 Database 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 functionality Tutorials work as documented The basic tutorial includes admin functionality as well as authentication and security information Plugins are extremely easy to install using console tools.
  • 13. CakePHP Open source (MIT license) Object Oriented M-V-C Architecture Works with PHP4 (4.3.2) Database agnostic Does not natively support SQLite3
  • 14. 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
  • 15. Yii Framework Stands for Yes It Is! Open source (BSD license) Object Oriented M-V-C Architecture Requires PHP 5.3 Database agnostic
  • 16. Yii Framework Powerful console tool (yiic) Does not generate SQL Uses Gii (web based code generator) for CRUD operations Default yii application as generated by yiic includes authentication functionality and three basic pages Tutorials are regularly updated
  • 17. Kohana Open Source (BSD license) Originally based on CodeIgniter, but no longer Object Oriented M-V-C Architecture Requires PHP 5.1.6 Database agnostic Does not support SQLite3 natively
  • 18. Kohana No console tool No automagic generation for any functionality Extremely small download (1.1MB) even smaller than CodeIgniter Documentation 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 Rails User Friendly (27 June 2008) by J.D. “Illiad” Frazer
  • 20. Ruby on Rails Open source (MIT license) Object Oriented M-V-C Architecture Provides its own server but using Apache with Passenger may uninstall PHP5 on Ubuntu Database agnostic
  • 21. Ruby on Rails Multiple console tools (rails and rake) Databases can be managed via console tools with YAML configuration files Automagically 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
  • 23. Django Open source (BSD license) Object Oriented Model-Template-View design (same as MVC) Provides its own server but can integrate with Apache or any other server Database agnostic
  • 24. Django Uses python manage.py as a console tool Automagically generates sql and admin functionality Can use console tools to manipulate data Tutorial is basic but well written. There is a “coming soon” at the end of the tutorial Admin functions are behind login pages, but the tutorial does not show how to create login pages for the public site
  • 25. Jakarta Jmeter 2.4 VMWARE workstation 7.1 Windows 7 Basic Performance Compared
  • 28. 101 Blog Entries on a Single Page

Editor's Notes

  1. Also, PHP is not considered “cool”
  2. 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.
  3. SQL queries are not absolutely correct for SQLite (autoincrement)