SlideShare a Scribd company logo
Building RIA with Zend Framework and PHP John Coggeshall Automotive Computer Services
Who am I: John Coggeshall Chief Technology Officer, Automotive Computer Services PHP Core Contributor Former Sr. member of Zend Technologies Global Services Author, geek, etc. Welcome Jun 4, 2009   |     |
Agenda today Today we’re going to talk about building RIA applications in PHP Specifically using Adobe Flex / AIR and PHP / Zend Framework Discuss everything about creating the application Development Environment and Tooling Client-side Architecture Server-side Architecture Pulling it together Demos Jun 4, 2009   |     |
Our Challenge ACS has an existing system for managing car dealerships nationwide Pure Client-side Really old (written in Visual FoxPro!) Current goal: Complete re-implementation of product as a thin-client application Need to retain desktop-like functionality Adobe AIR / Flex was selected as our GUI Jun 4, 2009   |     |
Why Flex? Why AIR? Originally numerous options were considered for the front-end HTML/JS using FireFox 3 XUL / JS  Flex offered the most reasonable rich-client solution Extremely Rapid UI Development when compared to HTML / JS Much more extendable / customizable then XUL / JS AIR gave us more client-side flexibility Access to Local file system  Access to local Hardware (or at least, we had options) Jun 4, 2009   |     |
Our Technology Stack Our Development Environment: Zend Studio for Eclipse with numerous plug-ins Flex Builder 3 Pro Plug-in LogWatcher (GUI tail –f) VMWare Virtual Machine for server CentOS powered running Zend Core MySQL 5.x database Our Development Stack Server: PHP 5.2 w/ Zend Framework 1.6 Client: Adobe Actionscript 3 / Flex w/PureMVC Jun 4, 2009   |     |
Client-Side Architecture Based on PureMVC  ( http://www.puremvc.org ) Singleton Controller, Model, View Views are managed by Mediators Models are implemented by Proxies Controller actions are implemented through Commands Jun 4, 2009   |     |
Client-side Architecture Primary communication via Notify/Observer pattern (Proxies cannot observe) Mediators bridge between Flex’s event model and the application Proxies communicate with data sources Jun 4, 2009   |     |
Server-Side Architecture RESTful services (currently) using e4x as its data transport e4x is well supported in Flex, very easy to work with Looking into AMF support in the near future (Zend_Amf) MVC pattern with one controller Action specifies the version Controller Maps the request URI to a class implementing the Command pattern Uses Zend Framework’s Plugin Architecture Jun 4, 2009   |     |
Server-Side Architecture http://host/service/v1/command/auth.login Maps to the ACS_Command_Auth_Login class The execute() method is called Located in ACS/Command/Auth/Login.php Commands are given a reference to Zend_Controller as well to provide context Full access to request, etc. Views are also then mapped to command name I.e. auth-login.xml.phtml Jun 4, 2009   |     |
Server-Side Architecture Wanted to have the ability to allow front-end engineers to work without needing real services Solution: Implement a dummy-xml ability into our services by including the ?dummy=1 GET parameter in our request Behind the curtain, our ZF architecture will automatically find a dummy .xml file for a response Jun 4, 2009   |     |
Pulling it together Now that we have both sides how can we more cleanly tie them together? Already have a single IDE to do all development in Extending the ActionScript HttpClient class to incorporate more stuff Enhancement #1: No need to specify a URL, just the service name Enhancement #2: Built-in support for “dummy” service requests Enhancement #3: Support for the Zend Studio Debugger Jun 4, 2009   |     |
End-to-End Debugging and Profiling Flex has a great Debugger / Profiler for Flex Zend Studio for Eclipse has a great Debugger / Profiler for PHP By extending the HttpClient Class, we can create a seamless end-to-end debug or profiling session using real web service requests Already has saved us once hunting a very nasty bug Jun 4, 2009   |     |
What more can we do? Web service developers need to document their services We need to create application usage documentation All documentation is written in DocBook format and stored in the repository Developer guide can be seamlessly integrated into Eclipse using a custom Plugin User Guide can be converted into HTML and shipped with product in chunk format (contextual help) Jun 4, 2009   |     |
Demo Let’s see a demo of everything in action! Jun 4, 2009   |     |
What do we dislike? As you can tell we’re very happy with AIR/Flex for the most part.. What is bad? Deferred Instantiation can be a real pain Sort of a memory / resource hog Very easy to do write bad code in Flex Lack of a fully-baked Unit Testing facility Jun 4, 2009   |     |
Thank you! Questions?

More Related Content

PDF
Building Desktop RIAs with PHP, HTML & Javascript in AIR
PPT
Flex vs. HTML5 for RIAS
PPT
Apache Flex: Overview
PDF
Developing html5 mobile applications using cold fusion 11
PPTX
Mobile Apps with ColdFusion
PPTX
Open Source examples from Adobe : Oscon kiosk
PPT
Flex vs HTML5
PPT
Opening the mobile web mozilla and firefox os-chit thiri maung
Building Desktop RIAs with PHP, HTML & Javascript in AIR
Flex vs. HTML5 for RIAS
Apache Flex: Overview
Developing html5 mobile applications using cold fusion 11
Mobile Apps with ColdFusion
Open Source examples from Adobe : Oscon kiosk
Flex vs HTML5
Opening the mobile web mozilla and firefox os-chit thiri maung

What's hot (18)

PPTX
Inventory management project based on ASP.NET, introduction to C# and ASP.NET
PPTX
Chris O'Brien - Modern SharePoint sites and the SharePoint Framework - reference
PPT
Flex 4 Overview
PPTX
Integrate any Angular Project into WebSphere Portal
PPT
Adobe flex an overview
PPT
Php Frameworks
PPT
Buzzword, How'd They Build That?
PPTX
Building ColdFusion And AngularJS Applications
PPT
Restful services with ColdFusion
PPTX
Chris OBrien - Pitfalls when developing with the SharePoint Framework (SPFx)
PPTX
ASP.NET - Introduction to Web Forms and MVC
PPTX
Developing an aspnet web application
PPTX
Development In ASP.NET by Tanzim Saqib
PPTX
COB - Azure Functions for Office 365 developers
PPT
Intro To Asp Net And Web Forms
PPTX
Unity Connect Haarlem 2016 - The Lay of the Land of Client-Side Development c...
PPTX
EVOLVE'16 | Enhance | Paul McMahon | Approaches to Leveraging AEM Within a Si...
PPTX
Chris O'Brien - Introduction to the SharePoint Framework for developers
Inventory management project based on ASP.NET, introduction to C# and ASP.NET
Chris O'Brien - Modern SharePoint sites and the SharePoint Framework - reference
Flex 4 Overview
Integrate any Angular Project into WebSphere Portal
Adobe flex an overview
Php Frameworks
Buzzword, How'd They Build That?
Building ColdFusion And AngularJS Applications
Restful services with ColdFusion
Chris OBrien - Pitfalls when developing with the SharePoint Framework (SPFx)
ASP.NET - Introduction to Web Forms and MVC
Developing an aspnet web application
Development In ASP.NET by Tanzim Saqib
COB - Azure Functions for Office 365 developers
Intro To Asp Net And Web Forms
Unity Connect Haarlem 2016 - The Lay of the Land of Client-Side Development c...
EVOLVE'16 | Enhance | Paul McMahon | Approaches to Leveraging AEM Within a Si...
Chris O'Brien - Introduction to the SharePoint Framework for developers
Ad

Viewers also liked (20)

PDF
Sycamore
PDF
Transcript-Tian Hui
PPT
Chap22 28
PDF
Scsu91908017
PPT
5.6 giới thiệu một công nghệ
PDF
Programa español
PPT
Connecting users to the tools that have been created for them
PDF
인천오피DASOM12net서현오피@야탑오피@동탄오피
PPTX
AIP UO - Rejestracja działalności gospodarczej
PPTX
Enfermedad moral en la salud publica
PDF
CV PDF
PDF
Step by step guide to switch ip address of 2 domain controllers
PDF
Scsu91908018
PDF
HTML opfrissing
PDF
Kevin Tyra
PDF
G1manual
PDF
AIP UO - Rejestracja działalności gospodarczej
PPTX
Clean Code - A&BP CC
PDF
Tabletas Android en la Educacion
PDF
CALM not BUSY: A New Approach for Nonprofit Communications Directors to Do Th...
Sycamore
Transcript-Tian Hui
Chap22 28
Scsu91908017
5.6 giới thiệu một công nghệ
Programa español
Connecting users to the tools that have been created for them
인천오피DASOM12net서현오피@야탑오피@동탄오피
AIP UO - Rejestracja działalności gospodarczej
Enfermedad moral en la salud publica
CV PDF
Step by step guide to switch ip address of 2 domain controllers
Scsu91908018
HTML opfrissing
Kevin Tyra
G1manual
AIP UO - Rejestracja działalności gospodarczej
Clean Code - A&BP CC
Tabletas Android en la Educacion
CALM not BUSY: A New Approach for Nonprofit Communications Directors to Do Th...
Ad

Similar to Ria Development With Flex And PHP (20)

PPS
Afik Gal @alphageeks: Flex Intro
PPT
Adobe's RIA Technologies (non technical)
PPT
Magento - a Zend Framework Application
PPT
Lamp Zend Security
PPTX
Windows Azure & How to Deploy Wordress
PPT
Building PHP Powered Android Applications
PPTX
P H P Framework
PPTX
2014 cf summit_clustering
PPTX
Launch Event FrameMaker 10 Overview
PDF
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
PPTX
DIY Flex
PPT
Introduction To Adobe Flex And Semantic Resources
PPT
Building Buzzword (Flex Camp Boston 2007)
PPT
IBM Bluemix cloudfoundry platform
PPT
What's new in p2 (2009)?
PPTX
phpbenelux - Microsoft & PHP (Web Platform Installer, Bridges and Azure)
PPTX
Developing multi-screen applications using Adobe Integrated Runtime (AIR)
PDF
Bootstrap4XPages
PPT
Eclipse summit-2010
Afik Gal @alphageeks: Flex Intro
Adobe's RIA Technologies (non technical)
Magento - a Zend Framework Application
Lamp Zend Security
Windows Azure & How to Deploy Wordress
Building PHP Powered Android Applications
P H P Framework
2014 cf summit_clustering
Launch Event FrameMaker 10 Overview
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
DIY Flex
Introduction To Adobe Flex And Semantic Resources
Building Buzzword (Flex Camp Boston 2007)
IBM Bluemix cloudfoundry platform
What's new in p2 (2009)?
phpbenelux - Microsoft & PHP (Web Platform Installer, Bridges and Azure)
Developing multi-screen applications using Adobe Integrated Runtime (AIR)
Bootstrap4XPages
Eclipse summit-2010

More from John Coggeshall (20)

PPTX
Virtualization for Developers
PPTX
Migrating to PHP 7
PPTX
Peek at PHP 7
PPTX
ZF2 Modules: Events, Services, and of course, modularity
PPT
PHP Development for Google Glass using Phass
PPTX
Virtualization for Developers
PPTX
Development with Vagrant
PPTX
Introduction to Zend Framework 2
PPTX
10 things not to do at a Startup
PPTX
Virtualization for Developers
PPTX
PPT
Ria Applications And PHP
PPT
Beyond the Browser
PPT
Apache Con 2008 Top 10 Mistakes
PPT
Top 10 Scalability Mistakes
PPT
Enterprise PHP: A Case Study
PPT
Building Dynamic Web Applications on i5 with PHP
PPT
PHP Security Basics
PPT
Migrating from PHP 4 to PHP 5
PPT
Ajax and PHP
Virtualization for Developers
Migrating to PHP 7
Peek at PHP 7
ZF2 Modules: Events, Services, and of course, modularity
PHP Development for Google Glass using Phass
Virtualization for Developers
Development with Vagrant
Introduction to Zend Framework 2
10 things not to do at a Startup
Virtualization for Developers
Ria Applications And PHP
Beyond the Browser
Apache Con 2008 Top 10 Mistakes
Top 10 Scalability Mistakes
Enterprise PHP: A Case Study
Building Dynamic Web Applications on i5 with PHP
PHP Security Basics
Migrating from PHP 4 to PHP 5
Ajax and PHP

Recently uploaded (20)

PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PPT
Teaching material agriculture food technology
PDF
Machine learning based COVID-19 study performance prediction
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
Spectroscopy.pptx food analysis technology
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
SOPHOS-XG Firewall Administrator PPT.pptx
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PPTX
Machine Learning_overview_presentation.pptx
PDF
MIND Revenue Release Quarter 2 2025 Press Release
Group 1 Presentation -Planning and Decision Making .pptx
Digital-Transformation-Roadmap-for-Companies.pptx
Teaching material agriculture food technology
Machine learning based COVID-19 study performance prediction
Building Integrated photovoltaic BIPV_UPV.pdf
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Spectroscopy.pptx food analysis technology
“AI and Expert System Decision Support & Business Intelligence Systems”
The Rise and Fall of 3GPP – Time for a Sabbatical?
20250228 LYD VKU AI Blended-Learning.pptx
Programs and apps: productivity, graphics, security and other tools
Network Security Unit 5.pdf for BCA BBA.
Per capita expenditure prediction using model stacking based on satellite ima...
Dropbox Q2 2025 Financial Results & Investor Presentation
SOPHOS-XG Firewall Administrator PPT.pptx
Spectral efficient network and resource selection model in 5G networks
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
NewMind AI Weekly Chronicles - August'25-Week II
Machine Learning_overview_presentation.pptx
MIND Revenue Release Quarter 2 2025 Press Release

Ria Development With Flex And PHP

  • 1. Building RIA with Zend Framework and PHP John Coggeshall Automotive Computer Services
  • 2. Who am I: John Coggeshall Chief Technology Officer, Automotive Computer Services PHP Core Contributor Former Sr. member of Zend Technologies Global Services Author, geek, etc. Welcome Jun 4, 2009 | |
  • 3. Agenda today Today we’re going to talk about building RIA applications in PHP Specifically using Adobe Flex / AIR and PHP / Zend Framework Discuss everything about creating the application Development Environment and Tooling Client-side Architecture Server-side Architecture Pulling it together Demos Jun 4, 2009 | |
  • 4. Our Challenge ACS has an existing system for managing car dealerships nationwide Pure Client-side Really old (written in Visual FoxPro!) Current goal: Complete re-implementation of product as a thin-client application Need to retain desktop-like functionality Adobe AIR / Flex was selected as our GUI Jun 4, 2009 | |
  • 5. Why Flex? Why AIR? Originally numerous options were considered for the front-end HTML/JS using FireFox 3 XUL / JS Flex offered the most reasonable rich-client solution Extremely Rapid UI Development when compared to HTML / JS Much more extendable / customizable then XUL / JS AIR gave us more client-side flexibility Access to Local file system Access to local Hardware (or at least, we had options) Jun 4, 2009 | |
  • 6. Our Technology Stack Our Development Environment: Zend Studio for Eclipse with numerous plug-ins Flex Builder 3 Pro Plug-in LogWatcher (GUI tail –f) VMWare Virtual Machine for server CentOS powered running Zend Core MySQL 5.x database Our Development Stack Server: PHP 5.2 w/ Zend Framework 1.6 Client: Adobe Actionscript 3 / Flex w/PureMVC Jun 4, 2009 | |
  • 7. Client-Side Architecture Based on PureMVC ( http://www.puremvc.org ) Singleton Controller, Model, View Views are managed by Mediators Models are implemented by Proxies Controller actions are implemented through Commands Jun 4, 2009 | |
  • 8. Client-side Architecture Primary communication via Notify/Observer pattern (Proxies cannot observe) Mediators bridge between Flex’s event model and the application Proxies communicate with data sources Jun 4, 2009 | |
  • 9. Server-Side Architecture RESTful services (currently) using e4x as its data transport e4x is well supported in Flex, very easy to work with Looking into AMF support in the near future (Zend_Amf) MVC pattern with one controller Action specifies the version Controller Maps the request URI to a class implementing the Command pattern Uses Zend Framework’s Plugin Architecture Jun 4, 2009 | |
  • 10. Server-Side Architecture http://host/service/v1/command/auth.login Maps to the ACS_Command_Auth_Login class The execute() method is called Located in ACS/Command/Auth/Login.php Commands are given a reference to Zend_Controller as well to provide context Full access to request, etc. Views are also then mapped to command name I.e. auth-login.xml.phtml Jun 4, 2009 | |
  • 11. Server-Side Architecture Wanted to have the ability to allow front-end engineers to work without needing real services Solution: Implement a dummy-xml ability into our services by including the ?dummy=1 GET parameter in our request Behind the curtain, our ZF architecture will automatically find a dummy .xml file for a response Jun 4, 2009 | |
  • 12. Pulling it together Now that we have both sides how can we more cleanly tie them together? Already have a single IDE to do all development in Extending the ActionScript HttpClient class to incorporate more stuff Enhancement #1: No need to specify a URL, just the service name Enhancement #2: Built-in support for “dummy” service requests Enhancement #3: Support for the Zend Studio Debugger Jun 4, 2009 | |
  • 13. End-to-End Debugging and Profiling Flex has a great Debugger / Profiler for Flex Zend Studio for Eclipse has a great Debugger / Profiler for PHP By extending the HttpClient Class, we can create a seamless end-to-end debug or profiling session using real web service requests Already has saved us once hunting a very nasty bug Jun 4, 2009 | |
  • 14. What more can we do? Web service developers need to document their services We need to create application usage documentation All documentation is written in DocBook format and stored in the repository Developer guide can be seamlessly integrated into Eclipse using a custom Plugin User Guide can be converted into HTML and shipped with product in chunk format (contextual help) Jun 4, 2009 | |
  • 15. Demo Let’s see a demo of everything in action! Jun 4, 2009 | |
  • 16. What do we dislike? As you can tell we’re very happy with AIR/Flex for the most part.. What is bad? Deferred Instantiation can be a real pain Sort of a memory / resource hog Very easy to do write bad code in Flex Lack of a fully-baked Unit Testing facility Jun 4, 2009 | |