SlideShare une entreprise Scribd logo
1  sur  98
Zend Framework for Enterprise PHP on IBM i By   Alan Seiden – PHP/i Developer and Consultant Strategic Business Systems, Inc.
About me (Alan Seiden) ,[object Object],[object Object],[object Object],[object Object],Consultant/developer and mentor specializing in  PHP & Zend Framework on IBM i
About Strategic Business Systems, Inc. ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
What I’ll cover today ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Why PHP on i ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Typical stages of PHP on i ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Grass roots stage
Grass roots stage ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Grass roots resources ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Pilot Project
Pilot project: how to pick one ,[object Object],[object Object],[object Object],[object Object],[object Object]
Pilot project: goals and resources ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Zend Studio for Eclipse (IDE) ,[object Object]
Zend Platform (soon to be Zend Server) ,[object Object]
Zend Framework ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
But what is  Enterprise  PHP?
Enterprise PHP is: ,[object Object],[object Object],[object Object],[object Object],[object Object]
Enterprise PHP in detail ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Zend Framework ,[object Object]
The PHP community is evolving ,[object Object],[object Object],[object Object]
Three benefits of a PHP framework ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Where to get it ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Why ZF’s time is right   ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Why I use it ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Zend Framework Community ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Here’s why ZF reminds me of the i5 world ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
ZF’s birth, early years, and maturity on i5 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Section title slide COMMON award for best web solution 2009 Allied Beverage Group’s “eBiz” Wine catalog/ordering system on IBM i Built in Zend Framework Full-text catalog search in native db2
Why eBiz was successful ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Allied Beverage eBiz live demo (if time)
Object orientation (OO) ,[object Object]
Object Orientation (OO) ,[object Object],Imagine an intelligent data structure containing both data (properties) and programming logic (methods), which are both called “members” of the class function or subprocedure a field in a data structure Analogy in i5 class Order { protected $_orderNum; function isOrder() { . . . } . . . } Class isOrder() Method $_orderNum Property Example OO Concept
OO Syntax ,[object Object],[object Object],[object Object],[object Object],[object Object]
Model-View-Controller ,[object Object]
Model – View – Controller (MVC) design pattern ,[object Object],[object Object],[object Object],[object Object]
MVC in detail ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
RPG Model View Controller (MVC) M Access/Business Logic C VIEW V RPG/Application (Subroutine) 5250 Screen  (DDS) RPG/Application flow  (Mainline)
Confession ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Initialize MVC
Front controller to action controller
Front controller routes “friendly” URL ,[object Object],[object Object],Front Controller Controller1 action1() action2() Controller2 action1() action2() Bootstrap: index.php http request Action maps to method name Param/value pairs are passed to action Controller maps to class name
All requests through index.php in doc root ,[object Object],[object Object],[object Object],[object Object]
Apache configuration ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Front controller bootstrap file: index.php ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Action Controller ,[object Object]
Action Controller ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Controller example
View ,[object Object]
View ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
What View means to you ,[object Object],[object Object],[object Object],[object Object]
My own view helper: TitleCase.php ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Usage: echo $this->titleCase(‘mozilla firefox’); // Mozilla Firefox
Controller (again)…leads to view
View script automatically rendered
Zend_Layout ,[object Object],[object Object],[object Object],[object Object]
Zend_Layout code
Model
Model ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Model example: “system busy” flag // model: Busyflag.php class Busyflag { protected $name = ‘SYSFLAGS'; // old-fashioned “System 36” table // isSiteUp: return true if up, false if down public function isSiteUp() { $sql = "select BZYFLG from {$this->name} where RECID ='B'";  $row = SBSDbhelp::getOneRow($sql);  // true if Y, false otherwise. return $row['BZYFLG'] == 'Y';  } //(public function isSiteUp()) } //(class Busyflag) // usage (from a preDispatch front controller plugin) $busyFlag = new Busyflag(); if (!$busyFlag->isSiteUp()) { // Take user to "site down" page. } //(if (!$busyFlag->isSiteUp()))
Components included in ZF ,[object Object]
Library of Zend components Reminder: Zend/Db.php = Zend_Db Zend/Db/Table.php = Zend_Db_Table
Forms ,[object Object]
Zend_Form ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
More complex Zend_Form example in MVC ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Real life example of Zend_Form
Search results
Implementation of Product Id field ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Database access ,[object Object]
Database access with Zend_Db ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Database access ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Zend_Db_Table ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Zend_Db techniques for IBM i ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Config.ini externalizes Zend_Db settings  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Working with RPG ,[object Object]
Use models to call RPG from ZF ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Example of calling RPG from ZF
Model hides the details of calling RPG ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
See how simple the controller code is ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Pagination ,[object Object]
Zend_Paginator ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Zend_Paginator display ,[object Object]
Example of Zend_Paginator code ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Code to build links for Paginator ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Other components you’ll like
Zend_Registry ,[object Object],[object Object],[object Object],[object Object]
Zend_Log ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Zend_Config ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Config + Registry ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Caching with Zend_Cache ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Zend_Cache: basic code example ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Zend_PDF ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Client classes for web services ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Zend_Service_Yahoo ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Results from $yahoo->webSearch
How to start a ZF project
Start the right way with Zend Studio for Eclipse ,[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Resources: online
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Path to ZF
Questions? Leave feedback at  joind.in/900 For free PHP/i tips, write to phptips@alanseiden.com PHP/i blog and articles:  alanseiden.com Email:  [email_address] LinkedIn:  linkedin.com/in/alanseiden   SBS office phone: 1-800-727-7260

Contenu connexe

Plus de Alan Seiden

Performance tuning with zend framework
Performance tuning with zend frameworkPerformance tuning with zend framework
Performance tuning with zend frameworkAlan Seiden
 
From Zero to ZF: Your first zend framework project on ibm i
From Zero to ZF: Your first zend framework project on ibm iFrom Zero to ZF: Your first zend framework project on ibm i
From Zero to ZF: Your first zend framework project on ibm iAlan Seiden
 
Browser tools that make web development easier
Browser tools that make web development easierBrowser tools that make web development easier
Browser tools that make web development easierAlan Seiden
 
PHP Batch Jobs on IBM i
PHP Batch Jobs on IBM iPHP Batch Jobs on IBM i
PHP Batch Jobs on IBM iAlan Seiden
 
Web services on IBM i with PHP and Zend Framework
Web services on IBM i with PHP and Zend FrameworkWeb services on IBM i with PHP and Zend Framework
Web services on IBM i with PHP and Zend FrameworkAlan Seiden
 
Meeting of the Preserve Graydon Coalition, March 23, 2010
Meeting of the Preserve Graydon Coalition, March 23, 2010Meeting of the Preserve Graydon Coalition, March 23, 2010
Meeting of the Preserve Graydon Coalition, March 23, 2010Alan Seiden
 

Plus de Alan Seiden (6)

Performance tuning with zend framework
Performance tuning with zend frameworkPerformance tuning with zend framework
Performance tuning with zend framework
 
From Zero to ZF: Your first zend framework project on ibm i
From Zero to ZF: Your first zend framework project on ibm iFrom Zero to ZF: Your first zend framework project on ibm i
From Zero to ZF: Your first zend framework project on ibm i
 
Browser tools that make web development easier
Browser tools that make web development easierBrowser tools that make web development easier
Browser tools that make web development easier
 
PHP Batch Jobs on IBM i
PHP Batch Jobs on IBM iPHP Batch Jobs on IBM i
PHP Batch Jobs on IBM i
 
Web services on IBM i with PHP and Zend Framework
Web services on IBM i with PHP and Zend FrameworkWeb services on IBM i with PHP and Zend Framework
Web services on IBM i with PHP and Zend Framework
 
Meeting of the Preserve Graydon Coalition, March 23, 2010
Meeting of the Preserve Graydon Coalition, March 23, 2010Meeting of the Preserve Graydon Coalition, March 23, 2010
Meeting of the Preserve Graydon Coalition, March 23, 2010
 

Dernier

The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 

Dernier (20)

The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 

Zend Framework For Enterprise PHP On IBM i

  • 1. Zend Framework for Enterprise PHP on IBM i By Alan Seiden – PHP/i Developer and Consultant Strategic Business Systems, Inc.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 8.
  • 9.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16. But what is Enterprise PHP?
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28. Section title slide COMMON award for best web solution 2009 Allied Beverage Group’s “eBiz” Wine catalog/ordering system on IBM i Built in Zend Framework Full-text catalog search in native db2
  • 29.
  • 30. Allied Beverage eBiz live demo (if time)
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37. RPG Model View Controller (MVC) M Access/Business Logic C VIEW V RPG/Application (Subroutine) 5250 Screen (DDS) RPG/Application flow (Mainline)
  • 38.
  • 40. Front controller to action controller
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 48.
  • 49.
  • 50.
  • 51.
  • 54.
  • 56. Model
  • 57.
  • 58. Model example: “system busy” flag // model: Busyflag.php class Busyflag { protected $name = ‘SYSFLAGS'; // old-fashioned “System 36” table // isSiteUp: return true if up, false if down public function isSiteUp() { $sql = "select BZYFLG from {$this->name} where RECID ='B'"; $row = SBSDbhelp::getOneRow($sql); // true if Y, false otherwise. return $row['BZYFLG'] == 'Y'; } //(public function isSiteUp()) } //(class Busyflag) // usage (from a preDispatch front controller plugin) $busyFlag = new Busyflag(); if (!$busyFlag->isSiteUp()) { // Take user to "site down" page. } //(if (!$busyFlag->isSiteUp()))
  • 59.
  • 60. Library of Zend components Reminder: Zend/Db.php = Zend_Db Zend/Db/Table.php = Zend_Db_Table
  • 61.
  • 62.
  • 63.
  • 64. Real life example of Zend_Form
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75. Example of calling RPG from ZF
  • 76.
  • 77.
  • 78.
  • 79.
  • 80.
  • 81.
  • 82.
  • 84.
  • 85.
  • 86.
  • 87.
  • 88.
  • 89.
  • 90.
  • 91.
  • 92.
  • 94. How to start a ZF project
  • 95.
  • 96.
  • 97.
  • 98. Questions? Leave feedback at joind.in/900 For free PHP/i tips, write to phptips@alanseiden.com PHP/i blog and articles: alanseiden.com Email: [email_address] LinkedIn: linkedin.com/in/alanseiden SBS office phone: 1-800-727-7260