SlideShare a Scribd company logo
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

Groovy features
Groovy featuresGroovy features
Groovy features
Ramakrishna kapa
 
PHP framework difference
PHP framework differencePHP framework difference
PHP framework difference
iScripts
 
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 Sahi
ericjamesblackburn
 
Lecture java basics
Lecture   java basicsLecture   java basics
Lecture java basics
eleksdev
 
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
Moon Technolabs Pvt. Ltd.
 
Java2 platform
Java2 platformJava2 platform
Java2 platform
Sajan Sahu
 
Web Test Automation with Selenium
Web Test Automation with SeleniumWeb Test Automation with Selenium
Web Test Automation with Selenium
vivek_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 yii
Andy Kelk
 
Laravel
LaravelLaravel
Laravel
Dyuti Islam
 
Java Presentation
Java PresentationJava Presentation
Java Presentationpm2214
 
Lecture android best practices
Lecture   android best practicesLecture   android best practices
Lecture android best practices
eleksdev
 
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 Questions
Jai Singh
 
Introduction to .NET Framework
Introduction to .NET FrameworkIntroduction to .NET Framework
Introduction to .NET Framework
Małgorzata Borzęcka
 
Php Conference Brazil - Phalcon Giant Killer
Php Conference Brazil - Phalcon Giant KillerPhp Conference Brazil - Phalcon Giant Killer
Php Conference Brazil - Phalcon Giant Killer
Jackson 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

Lamp Zend Security
Lamp Zend SecurityLamp Zend Security
Lamp Zend Security
Ram Srivastava
 
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 Integration
Sauce Labs
 
Php Framework
Php FrameworkPhp Framework
Php Framework
cncwebworld
 
Php framework
Php frameworkPhp framework
Php framework
cncwebworld
 
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 2013
Mack Hardy
 
PHP Frameworks and CodeIgniter
PHP Frameworks and CodeIgniterPHP Frameworks and CodeIgniter
PHP Frameworks and CodeIgniter
KHALID C
 
Net Fundamentals
Net FundamentalsNet Fundamentals
Net FundamentalsAli Taki
 
P H P Framework
P H P  FrameworkP H P  Framework
P H P Framework
Animesh Kumar
 
Frankenstein's IDE: NetBeans and OSGi
Frankenstein's IDE: NetBeans and OSGiFrankenstein's IDE: NetBeans and OSGi
Frankenstein's IDE: NetBeans and OSGi
Toni Epple
 
A Microsoft primer for PHP devs
A Microsoft primer for PHP devsA Microsoft primer for PHP devs
A Microsoft primer for PHP devs
guest0a62e8
 
Codeigniter Introduction
Codeigniter IntroductionCodeigniter Introduction
Codeigniter Introduction
Ashfan Ahamed
 
Robot framework
Robot frameworkRobot framework
Robot framework
Rochak Bhalla
 
Php Web Frameworks
Php Web FrameworksPhp Web Frameworks
Php Web Frameworks
Shreyans Jasoriya
 
Yii2 by Peter Jack Kambey
Yii2 by Peter Jack KambeyYii2 by Peter Jack Kambey
Yii2 by Peter Jack Kambey
k4ndar
 
Introduction to CodeIgniter
Introduction to CodeIgniterIntroduction to CodeIgniter
Introduction to CodeIgniter
kindafunnylookin
 
SilverStripe Meetup 03/03/2011
SilverStripe Meetup 03/03/2011SilverStripe Meetup 03/03/2011
SilverStripe Meetup 03/03/2011
Paul Rogers
 
SilverStripe Meetup Presentation 03/03/2011
SilverStripe Meetup Presentation 03/03/2011SilverStripe Meetup Presentation 03/03/2011
SilverStripe Meetup Presentation 03/03/2011
Paul Rogers
 
Top 6 php framework
Top 6 php frameworkTop 6 php framework
Top 6 php framework
Narola Infotech
 

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

Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 

Recently uploaded (20)

Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 

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)