SlideShare a Scribd company logo
PHP Frameworks




Mar 2, 2006      Atlanta PHP User Group   1
Disclaimers
 ●   Novice Perspective

 ●   Not rigorous, not exhaustive

 ●   Subjective assessments

 ●   Only considering Open Source



Mar 2, 2006           Atlanta PHP User Group   2
What is a Framework?
 ●   Library of Processes/Practices?

 ●   Library of Code Modules/Templates/Objects?

 ●   Library of Automation Tools?


 ●   Consultant BS?

 ●   All of the above?
Mar 2, 2006              Atlanta PHP User Group   3
Nothing New Under the Sun
 ●   Standard way of doing things
      –   Repeatability
      –   Scaffolding
      –   Patterns

 ●   Simplify the process

 ●   Automate the tedious bits

Mar 2, 2006               Atlanta PHP User Group   4
Expectations
 ●   Influence of Ruby on Rails
      ●   Highly automated

      ●   Object oriented language

      ●   Database abstraction

      ●   Use of assumptions in development



Mar 2, 2006               Atlanta PHP User Group   5
Expectations
 ●   General Acceptance of MVC Division of Labor
      –   Model – information storage
      –   View – information display
      –   Controller – information manipulation (business
          logic)
                                                      View
                                                        View
                                                          View


                 Request           Controller


                                                      Model
Mar 2, 2006                  Atlanta PHP User Group              6
PHP Frameworks
 ●   Lots to choose from!
      –   Zend                              - CakePHP
      –   eZ Components                     - Symfony
      –   WASP                              - etc. etc. etc.

 ●   Many ports of Java MVC frameworks
      –   Phrame (Struts)
      –   Studs (Struts)
      –   etc. etc. etc.
Mar 2, 2006                 Atlanta PHP User Group             7
Zend PHP Framework
 ●   Announced and hyped
 ●   Many PHP players on board
 ●   Company angle
      –   Zend
      –   www.zend.com
 ●   Framework links
      –   www.zend.com/collaboration
      –   www.zend.com/collaboration/framework_overview

Mar 2, 2006              Atlanta PHP User Group           8
eZ Components
 ●   Object library approach
 ●   Simplified object loading
 ●   No UI components, No Ajax support, No
     automated data model creation (yet)
 ●   Seems geared toward professional coders
 ●   Company angle
      –   eZ Systems
      –   ez.no
      –   ez.no/products/ez_components
Mar 2, 2006              Atlanta PHP User Group   9
WASP
 ●   wasp.sourceforge.net/content
 ●   So-so community support
 ●   Company angle:
      –   Pango Media
      –   www.pangomedia.com




Mar 2, 2006             Atlanta PHP User Group   10
CakePHP
 ●   www.cakephp.org
 ●   Dynamic community
 ●   Company angle:
      –   None?




Mar 2, 2006           Atlanta PHP User Group   11
Symfony
 ●   www.symfony-project.org
 ●   Dynamic community
 ●   Excellent documentation/tutorials
 ●   Data abstraction layer/schema generator
     provided (Propel)
 ●   Company angle:
      –   Sensio
      –   www.sensio.fr

Mar 2, 2006               Atlanta PHP User Group   12
Symfony Demo
 ●   sf_sandbox (for quick start)

 ●   Tutorial notes
      –   Missing folder: …/apps/frontend/modules
      –   SQLite needs to be enabled in PHP 5.1.x
              ●   php.ini settings
              ●   extension=php_pdo.dll
              ●   extension=php_sqlite.dll



Mar 2, 2006                   Atlanta PHP User Group   13
Symfony Integrations
●   Propel
    –   Object Relational Mapping (ORM)


●   Creole
    –   SQL data abstraction layer
Tutorial Steps
 1.           Install symfony and initialize the project
 2.           Initialize the data model
 3.           Create the application scaffolding
 4.           Modify the layout
 5.           Pass data from the application to the
              template
 6.           Add a record relative to another table


Mar 2, 2006                  Atlanta PHP User Group        15
Tutorial Steps
 7.           Form validation
 8.           Change the URL aspect
 9.           Clean up the frontend
 10. Generation of backend
 11. Restrict access to backend
 12. Conclusion



Mar 2, 2006                Atlanta PHP User Group   16
Big project how to...
 ●   Advent calendar of tutorials
      –   www.symfony-project.com/askeet
      –   www.askeet.com




Mar 2, 2006                Atlanta PHP User Group   17
Conclusions
●   Frameworks are about organizing your
    development practices. Can you?
●   Open source frameworks are still rough;
    tutorials need work
●   When you commit to somebody else’s
    framework, you may be at their mercy.
●   Expect trend toward frameworks endorsed by
    major industry players

More Related Content

Similar to <img src="../i/r_14.png" />

Node.js Course 2 of 2 - Advanced techniques
Node.js Course 2 of 2 - Advanced techniquesNode.js Course 2 of 2 - Advanced techniques
Node.js Course 2 of 2 - Advanced techniques
Manuel Eusebio de Paz Carmona
 
Data Science Salon: A Journey of Deploying a Data Science Engine to Production
Data Science Salon: A Journey of Deploying a Data Science Engine to ProductionData Science Salon: A Journey of Deploying a Data Science Engine to Production
Data Science Salon: A Journey of Deploying a Data Science Engine to Production
Formulatedby
 
Web development in JavaEE7 with JSF, does it still matter?
Web development in JavaEE7 with JSF, does it still matter?Web development in JavaEE7 with JSF, does it still matter?
Web development in JavaEE7 with JSF, does it still matter?
Paris Apostolopoulos
 
PHP - Programming language war, does it matter
PHP - Programming language war, does it matterPHP - Programming language war, does it matter
PHP - Programming language war, does it matter
Mizno Kruge
 
Implementing a Symfony Based CMS in a Publishing Company
Implementing a Symfony Based CMS in a Publishing CompanyImplementing a Symfony Based CMS in a Publishing Company
Implementing a Symfony Based CMS in a Publishing Company
Marcos Labad
 
Enabling The Enterprise With Php
Enabling The Enterprise With PhpEnabling The Enterprise With Php
Enabling The Enterprise With Php
phptechtalk
 
java web framework standard.20180412
java web framework standard.20180412java web framework standard.20180412
java web framework standard.20180412
FirmansyahIrma1
 
Agile Software Development by Sencha
Agile Software Development by SenchaAgile Software Development by Sencha
Agile Software Development by Sencha
Lael Rukius
 
Bledar Gjocaj - Java open source
Bledar Gjocaj - Java open sourceBledar Gjocaj - Java open source
Bledar Gjocaj - Java open source
Open Labs Albania
 
symfony_from_scratch
symfony_from_scratchsymfony_from_scratch
symfony_from_scratchtutorialsruby
 
symfony_from_scratch
symfony_from_scratchsymfony_from_scratch
symfony_from_scratchtutorialsruby
 
Kick starting Network Automation
Kick starting Network AutomationKick starting Network Automation
Kick starting Network Automation
Walid Shaari
 
Top 7 php frameworks for startups 2019
Top 7 php frameworks for startups   2019Top 7 php frameworks for startups   2019
Top 7 php frameworks for startups 2019
ValueCoders
 
Liferay portals in real projects
Liferay portals  in real projectsLiferay portals  in real projects
Liferay portals in real projects
IBACZ
 
Open source, What | Why | How
Open source, What | Why | How Open source, What | Why | How
Open source, What | Why | How
Nikhil Agrawal
 
10 clues showing that you are doing OSGi in the wrong manner - Jerome Moliere
10 clues showing that you are doing OSGi in the wrong manner - Jerome Moliere10 clues showing that you are doing OSGi in the wrong manner - Jerome Moliere
10 clues showing that you are doing OSGi in the wrong manner - Jerome Moliere
mfrancis
 
Java EE6 CodeCamp16 oct 2010
Java EE6 CodeCamp16 oct 2010Java EE6 CodeCamp16 oct 2010
Java EE6 CodeCamp16 oct 2010Codecamp Romania
 
UNC Chapel Hill 2014 CTC Retreat - Carolina Cloudapps / RedHat OpenShift Ente...
UNC Chapel Hill 2014 CTC Retreat - Carolina Cloudapps / RedHat OpenShift Ente...UNC Chapel Hill 2014 CTC Retreat - Carolina Cloudapps / RedHat OpenShift Ente...
UNC Chapel Hill 2014 CTC Retreat - Carolina Cloudapps / RedHat OpenShift Ente...
Jonathan Pletzke
 
Doctrine Project
Doctrine ProjectDoctrine Project
Doctrine Project
Daniel Lima
 

Similar to <img src="../i/r_14.png" /> (20)

Node.js Course 2 of 2 - Advanced techniques
Node.js Course 2 of 2 - Advanced techniquesNode.js Course 2 of 2 - Advanced techniques
Node.js Course 2 of 2 - Advanced techniques
 
Data Science Salon: A Journey of Deploying a Data Science Engine to Production
Data Science Salon: A Journey of Deploying a Data Science Engine to ProductionData Science Salon: A Journey of Deploying a Data Science Engine to Production
Data Science Salon: A Journey of Deploying a Data Science Engine to Production
 
Web development in JavaEE7 with JSF, does it still matter?
Web development in JavaEE7 with JSF, does it still matter?Web development in JavaEE7 with JSF, does it still matter?
Web development in JavaEE7 with JSF, does it still matter?
 
PHP - Programming language war, does it matter
PHP - Programming language war, does it matterPHP - Programming language war, does it matter
PHP - Programming language war, does it matter
 
Implementing a Symfony Based CMS in a Publishing Company
Implementing a Symfony Based CMS in a Publishing CompanyImplementing a Symfony Based CMS in a Publishing Company
Implementing a Symfony Based CMS in a Publishing Company
 
Lightweight web frameworks
Lightweight web frameworksLightweight web frameworks
Lightweight web frameworks
 
Enabling The Enterprise With Php
Enabling The Enterprise With PhpEnabling The Enterprise With Php
Enabling The Enterprise With Php
 
java web framework standard.20180412
java web framework standard.20180412java web framework standard.20180412
java web framework standard.20180412
 
Agile Software Development by Sencha
Agile Software Development by SenchaAgile Software Development by Sencha
Agile Software Development by Sencha
 
Bledar Gjocaj - Java open source
Bledar Gjocaj - Java open sourceBledar Gjocaj - Java open source
Bledar Gjocaj - Java open source
 
symfony_from_scratch
symfony_from_scratchsymfony_from_scratch
symfony_from_scratch
 
symfony_from_scratch
symfony_from_scratchsymfony_from_scratch
symfony_from_scratch
 
Kick starting Network Automation
Kick starting Network AutomationKick starting Network Automation
Kick starting Network Automation
 
Top 7 php frameworks for startups 2019
Top 7 php frameworks for startups   2019Top 7 php frameworks for startups   2019
Top 7 php frameworks for startups 2019
 
Liferay portals in real projects
Liferay portals  in real projectsLiferay portals  in real projects
Liferay portals in real projects
 
Open source, What | Why | How
Open source, What | Why | How Open source, What | Why | How
Open source, What | Why | How
 
10 clues showing that you are doing OSGi in the wrong manner - Jerome Moliere
10 clues showing that you are doing OSGi in the wrong manner - Jerome Moliere10 clues showing that you are doing OSGi in the wrong manner - Jerome Moliere
10 clues showing that you are doing OSGi in the wrong manner - Jerome Moliere
 
Java EE6 CodeCamp16 oct 2010
Java EE6 CodeCamp16 oct 2010Java EE6 CodeCamp16 oct 2010
Java EE6 CodeCamp16 oct 2010
 
UNC Chapel Hill 2014 CTC Retreat - Carolina Cloudapps / RedHat OpenShift Ente...
UNC Chapel Hill 2014 CTC Retreat - Carolina Cloudapps / RedHat OpenShift Ente...UNC Chapel Hill 2014 CTC Retreat - Carolina Cloudapps / RedHat OpenShift Ente...
UNC Chapel Hill 2014 CTC Retreat - Carolina Cloudapps / RedHat OpenShift Ente...
 
Doctrine Project
Doctrine ProjectDoctrine Project
Doctrine Project
 

More from tutorialsruby

<img src="../i/r_14.png" />
<img src="../i/r_14.png" /><img src="../i/r_14.png" />
<img src="../i/r_14.png" />tutorialsruby
 
TopStyle Help & <b>Tutorial</b>
TopStyle Help & <b>Tutorial</b>TopStyle Help & <b>Tutorial</b>
TopStyle Help & <b>Tutorial</b>tutorialsruby
 
The Art Institute of Atlanta IMD 210 Fundamentals of Scripting <b>...</b>
The Art Institute of Atlanta IMD 210 Fundamentals of Scripting <b>...</b>The Art Institute of Atlanta IMD 210 Fundamentals of Scripting <b>...</b>
The Art Institute of Atlanta IMD 210 Fundamentals of Scripting <b>...</b>tutorialsruby
 
<img src="../i/r_14.png" />
<img src="../i/r_14.png" /><img src="../i/r_14.png" />
<img src="../i/r_14.png" />tutorialsruby
 
<img src="../i/r_14.png" />
<img src="../i/r_14.png" /><img src="../i/r_14.png" />
<img src="../i/r_14.png" />tutorialsruby
 
Standardization and Knowledge Transfer – INS0
Standardization and Knowledge Transfer – INS0Standardization and Knowledge Transfer – INS0
Standardization and Knowledge Transfer – INS0tutorialsruby
 
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa0602690047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269tutorialsruby
 
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa0602690047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269tutorialsruby
 
BloggingWithStyle_2008
BloggingWithStyle_2008BloggingWithStyle_2008
BloggingWithStyle_2008tutorialsruby
 
BloggingWithStyle_2008
BloggingWithStyle_2008BloggingWithStyle_2008
BloggingWithStyle_2008tutorialsruby
 
cascadingstylesheets
cascadingstylesheetscascadingstylesheets
cascadingstylesheetstutorialsruby
 
cascadingstylesheets
cascadingstylesheetscascadingstylesheets
cascadingstylesheetstutorialsruby
 

More from tutorialsruby (20)

<img src="../i/r_14.png" />
<img src="../i/r_14.png" /><img src="../i/r_14.png" />
<img src="../i/r_14.png" />
 
TopStyle Help & <b>Tutorial</b>
TopStyle Help & <b>Tutorial</b>TopStyle Help & <b>Tutorial</b>
TopStyle Help & <b>Tutorial</b>
 
The Art Institute of Atlanta IMD 210 Fundamentals of Scripting <b>...</b>
The Art Institute of Atlanta IMD 210 Fundamentals of Scripting <b>...</b>The Art Institute of Atlanta IMD 210 Fundamentals of Scripting <b>...</b>
The Art Institute of Atlanta IMD 210 Fundamentals of Scripting <b>...</b>
 
<img src="../i/r_14.png" />
<img src="../i/r_14.png" /><img src="../i/r_14.png" />
<img src="../i/r_14.png" />
 
<img src="../i/r_14.png" />
<img src="../i/r_14.png" /><img src="../i/r_14.png" />
<img src="../i/r_14.png" />
 
Standardization and Knowledge Transfer – INS0
Standardization and Knowledge Transfer – INS0Standardization and Knowledge Transfer – INS0
Standardization and Knowledge Transfer – INS0
 
xhtml_basics
xhtml_basicsxhtml_basics
xhtml_basics
 
xhtml_basics
xhtml_basicsxhtml_basics
xhtml_basics
 
xhtml-documentation
xhtml-documentationxhtml-documentation
xhtml-documentation
 
xhtml-documentation
xhtml-documentationxhtml-documentation
xhtml-documentation
 
CSS
CSSCSS
CSS
 
CSS
CSSCSS
CSS
 
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa0602690047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
 
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa0602690047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
 
HowTo_CSS
HowTo_CSSHowTo_CSS
HowTo_CSS
 
HowTo_CSS
HowTo_CSSHowTo_CSS
HowTo_CSS
 
BloggingWithStyle_2008
BloggingWithStyle_2008BloggingWithStyle_2008
BloggingWithStyle_2008
 
BloggingWithStyle_2008
BloggingWithStyle_2008BloggingWithStyle_2008
BloggingWithStyle_2008
 
cascadingstylesheets
cascadingstylesheetscascadingstylesheets
cascadingstylesheets
 
cascadingstylesheets
cascadingstylesheetscascadingstylesheets
cascadingstylesheets
 

Recently uploaded

How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Vladimir Iglovikov, Ph.D.
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
Rohit Gautam
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
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
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
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
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 

Recently uploaded (20)

How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
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
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
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
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 

<img src="../i/r_14.png" />

  • 1. PHP Frameworks Mar 2, 2006 Atlanta PHP User Group 1
  • 2. Disclaimers ● Novice Perspective ● Not rigorous, not exhaustive ● Subjective assessments ● Only considering Open Source Mar 2, 2006 Atlanta PHP User Group 2
  • 3. What is a Framework? ● Library of Processes/Practices? ● Library of Code Modules/Templates/Objects? ● Library of Automation Tools? ● Consultant BS? ● All of the above? Mar 2, 2006 Atlanta PHP User Group 3
  • 4. Nothing New Under the Sun ● Standard way of doing things – Repeatability – Scaffolding – Patterns ● Simplify the process ● Automate the tedious bits Mar 2, 2006 Atlanta PHP User Group 4
  • 5. Expectations ● Influence of Ruby on Rails ● Highly automated ● Object oriented language ● Database abstraction ● Use of assumptions in development Mar 2, 2006 Atlanta PHP User Group 5
  • 6. Expectations ● General Acceptance of MVC Division of Labor – Model – information storage – View – information display – Controller – information manipulation (business logic) View View View Request Controller Model Mar 2, 2006 Atlanta PHP User Group 6
  • 7. PHP Frameworks ● Lots to choose from! – Zend - CakePHP – eZ Components - Symfony – WASP - etc. etc. etc. ● Many ports of Java MVC frameworks – Phrame (Struts) – Studs (Struts) – etc. etc. etc. Mar 2, 2006 Atlanta PHP User Group 7
  • 8. Zend PHP Framework ● Announced and hyped ● Many PHP players on board ● Company angle – Zend – www.zend.com ● Framework links – www.zend.com/collaboration – www.zend.com/collaboration/framework_overview Mar 2, 2006 Atlanta PHP User Group 8
  • 9. eZ Components ● Object library approach ● Simplified object loading ● No UI components, No Ajax support, No automated data model creation (yet) ● Seems geared toward professional coders ● Company angle – eZ Systems – ez.no – ez.no/products/ez_components Mar 2, 2006 Atlanta PHP User Group 9
  • 10. WASP ● wasp.sourceforge.net/content ● So-so community support ● Company angle: – Pango Media – www.pangomedia.com Mar 2, 2006 Atlanta PHP User Group 10
  • 11. CakePHP ● www.cakephp.org ● Dynamic community ● Company angle: – None? Mar 2, 2006 Atlanta PHP User Group 11
  • 12. Symfony ● www.symfony-project.org ● Dynamic community ● Excellent documentation/tutorials ● Data abstraction layer/schema generator provided (Propel) ● Company angle: – Sensio – www.sensio.fr Mar 2, 2006 Atlanta PHP User Group 12
  • 13. Symfony Demo ● sf_sandbox (for quick start) ● Tutorial notes – Missing folder: …/apps/frontend/modules – SQLite needs to be enabled in PHP 5.1.x ● php.ini settings ● extension=php_pdo.dll ● extension=php_sqlite.dll Mar 2, 2006 Atlanta PHP User Group 13
  • 14. Symfony Integrations ● Propel – Object Relational Mapping (ORM) ● Creole – SQL data abstraction layer
  • 15. Tutorial Steps 1. Install symfony and initialize the project 2. Initialize the data model 3. Create the application scaffolding 4. Modify the layout 5. Pass data from the application to the template 6. Add a record relative to another table Mar 2, 2006 Atlanta PHP User Group 15
  • 16. Tutorial Steps 7. Form validation 8. Change the URL aspect 9. Clean up the frontend 10. Generation of backend 11. Restrict access to backend 12. Conclusion Mar 2, 2006 Atlanta PHP User Group 16
  • 17. Big project how to... ● Advent calendar of tutorials – www.symfony-project.com/askeet – www.askeet.com Mar 2, 2006 Atlanta PHP User Group 17
  • 18. Conclusions ● Frameworks are about organizing your development practices. Can you? ● Open source frameworks are still rough; tutorials need work ● When you commit to somebody else’s framework, you may be at their mercy. ● Expect trend toward frameworks endorsed by major industry players