SlideShare une entreprise Scribd logo
1  sur  18
Télécharger pour lire hors ligne
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

Contenu connexe

En vedette

Edgarallanpoe elcorazondelator
Edgarallanpoe elcorazondelatorEdgarallanpoe elcorazondelator
Edgarallanpoe elcorazondelator
Ana Pertrra
 
160107 Dakenraad Engels Artikel LR_4 final
160107 Dakenraad Engels Artikel LR_4 final160107 Dakenraad Engels Artikel LR_4 final
160107 Dakenraad Engels Artikel LR_4 final
Marc Koudenburg
 
5 架构分析
5  架构分析5  架构分析
5 架构分析
yiditushe
 
Kur'an Putokaz Ljudima I Jasan Dokaz Pravog Puta I Razlikovanje Dobra Od Zla!
Kur'an   Putokaz Ljudima I Jasan Dokaz Pravog Puta I Razlikovanje Dobra Od Zla!Kur'an   Putokaz Ljudima I Jasan Dokaz Pravog Puta I Razlikovanje Dobra Od Zla!
Kur'an Putokaz Ljudima I Jasan Dokaz Pravog Puta I Razlikovanje Dobra Od Zla!
guestfadc3d
 
New Study Of Gita Nov 9 Dr Shriniwas J Kashalikar
New Study Of Gita Nov 9  Dr  Shriniwas J  KashalikarNew Study Of Gita Nov 9  Dr  Shriniwas J  Kashalikar
New Study Of Gita Nov 9 Dr Shriniwas J Kashalikar
banothkishan
 
Miracles for Kids Final Project
Miracles for Kids Final ProjectMiracles for Kids Final Project
Miracles for Kids Final Project
Kelly McCarthy
 

En vedette (17)

Edgarallanpoe elcorazondelator
Edgarallanpoe elcorazondelatorEdgarallanpoe elcorazondelator
Edgarallanpoe elcorazondelator
 
Kramer_Samuel_PPP
Kramer_Samuel_PPPKramer_Samuel_PPP
Kramer_Samuel_PPP
 
Risk assessment (Media)
Risk assessment (Media)Risk assessment (Media)
Risk assessment (Media)
 
160107 Dakenraad Engels Artikel LR_4 final
160107 Dakenraad Engels Artikel LR_4 final160107 Dakenraad Engels Artikel LR_4 final
160107 Dakenraad Engels Artikel LR_4 final
 
O TRABALHO DOCENTE DE ASSISTENTES SOCIAIS E ENGENHEIROS NO ENSINO SUPERIOR
O TRABALHO DOCENTE DE ASSISTENTES SOCIAIS E ENGENHEIROS NO ENSINO SUPERIORO TRABALHO DOCENTE DE ASSISTENTES SOCIAIS E ENGENHEIROS NO ENSINO SUPERIOR
O TRABALHO DOCENTE DE ASSISTENTES SOCIAIS E ENGENHEIROS NO ENSINO SUPERIOR
 
Mobile Cross Platform MWC Barcelona 2010 at Vodafone App Planet
Mobile Cross Platform MWC Barcelona 2010 at Vodafone App PlanetMobile Cross Platform MWC Barcelona 2010 at Vodafone App Planet
Mobile Cross Platform MWC Barcelona 2010 at Vodafone App Planet
 
5 架构分析
5  架构分析5  架构分析
5 架构分析
 
Kur'an Putokaz Ljudima I Jasan Dokaz Pravog Puta I Razlikovanje Dobra Od Zla!
Kur'an   Putokaz Ljudima I Jasan Dokaz Pravog Puta I Razlikovanje Dobra Od Zla!Kur'an   Putokaz Ljudima I Jasan Dokaz Pravog Puta I Razlikovanje Dobra Od Zla!
Kur'an Putokaz Ljudima I Jasan Dokaz Pravog Puta I Razlikovanje Dobra Od Zla!
 
New Study Of Gita Nov 9 Dr Shriniwas J Kashalikar
New Study Of Gita Nov 9  Dr  Shriniwas J  KashalikarNew Study Of Gita Nov 9  Dr  Shriniwas J  Kashalikar
New Study Of Gita Nov 9 Dr Shriniwas J Kashalikar
 
Mi tarea
Mi tareaMi tarea
Mi tarea
 
Suomen Kulttuuriperintökasvatuksen seura
Suomen Kulttuuriperintökasvatuksen seuraSuomen Kulttuuriperintökasvatuksen seura
Suomen Kulttuuriperintökasvatuksen seura
 
Miracles for Kids Final Project
Miracles for Kids Final ProjectMiracles for Kids Final Project
Miracles for Kids Final Project
 
Hybrid Mobile Application with Ionic Framework
Hybrid Mobile Application with Ionic FrameworkHybrid Mobile Application with Ionic Framework
Hybrid Mobile Application with Ionic Framework
 
My portfolio in assessment
My portfolio in assessmentMy portfolio in assessment
My portfolio in assessment
 
Case Solution for Hutchison Whampoa Ltd.: The Capital Structure Decision
Case Solution for Hutchison Whampoa Ltd.: The Capital Structure DecisionCase Solution for Hutchison Whampoa Ltd.: The Capital Structure Decision
Case Solution for Hutchison Whampoa Ltd.: The Capital Structure Decision
 
InSTEDD
InSTEDDInSTEDD
InSTEDD
 
A Day in the Life of my Photos
A Day in the Life of my PhotosA Day in the Life of my Photos
A Day in the Life of my Photos
 

Similaire à kroberts-php_frameworks

symfony_from_scratch
symfony_from_scratchsymfony_from_scratch
symfony_from_scratch
tutorialsruby
 
symfony_from_scratch
symfony_from_scratchsymfony_from_scratch
symfony_from_scratch
tutorialsruby
 
Java EE6 CodeCamp16 oct 2010
Java EE6 CodeCamp16 oct 2010Java EE6 CodeCamp16 oct 2010
Java EE6 CodeCamp16 oct 2010
Codecamp Romania
 

Similaire à kroberts-php_frameworks (20)

"Building Modern PHP Applications" - Jackson Murtha, South Dakota Code Camp 2012
"Building Modern PHP Applications" - Jackson Murtha, South Dakota Code Camp 2012"Building Modern PHP Applications" - Jackson Murtha, South Dakota Code Camp 2012
"Building Modern PHP Applications" - Jackson Murtha, South Dakota Code Camp 2012
 
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...
 

Plus de 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 – INS0
tutorialsruby
 
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa0602690047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
tutorialsruby
 
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa0602690047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
tutorialsruby
 
BloggingWithStyle_2008
BloggingWithStyle_2008BloggingWithStyle_2008
BloggingWithStyle_2008
tutorialsruby
 
BloggingWithStyle_2008
BloggingWithStyle_2008BloggingWithStyle_2008
BloggingWithStyle_2008
tutorialsruby
 
cascadingstylesheets
cascadingstylesheetscascadingstylesheets
cascadingstylesheets
tutorialsruby
 
cascadingstylesheets
cascadingstylesheetscascadingstylesheets
cascadingstylesheets
tutorialsruby
 

Plus de 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
 

Dernier

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Dernier (20)

Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
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
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 

kroberts-php_frameworks

  • 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