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

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 WorkerThousandEyes
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
[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.pdfhans926745
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 

Dernier (20)

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
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
[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
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.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