PHP and the Zend Framework
Published: July 9, 2008
by Erwin Earley
In a previous series of articles in IT Jungle, I introduced you to the enablement of the PHP language, via Zend Core, on i5/OS and the capabilities that PHP provides for the development and deployment of Web applications integrated with i5/OS objects and DB2 data. (See Related Stories below.) The customer interest in PHP has been high and I receive numerous questions at customer events on its usage of PHP on IBM i. Many people also ask about Zend Framework. What is Zend Framework? Can I use it on i5/OS? How can I integrate the advanced functionality that Zend Framework provides?
Let's begin with a general description. Zend Framework is a collection of pre-canned objects (classes and function calls) that facilitate the building of modern applications and Web services by integrating advanced functionality into existing Web applications. Zend Framework includes several components:
- Zend_Acl: Provides Access Control List (ACL) functionality and privileges management
- Zend_Config: Simplifies the use of configuration data for Web applications
- Zend_Controller and Zend_View: Provides the infrastructure for Model-View_Controller (MVC) Websites
- Zend_Feed: Provides a simple way to work with live syndicated feeds
- Zend_Filter and Zend_Validate: Facilitates the development of secure Websites by providing basic tools necessary for filtering and validation
- Zend_Gdata: Google data APIs that provide read/write access to services hosted at google.com such as Spreadsheets, Calendar, Blogger, and CodeSearch
- Zend_Mail and Zend_Mime: Create and send email messages
- Zend_PDF: Creates, reads, and modifies PDF documents from PHP applications
The Zend Framework library should be located in a directory that is in the include_path for Zend Core. Typically this would be:
Zend Framework is included and installed as part of Zend Core as of Version 2.5. It can also be downloaded from http://framework.zend.com.
The programmer's reference for Zend Framework can be found at http://framework.zend.com/manual/en. I recommend you refer to it often as you are looking to integrate advanced functionality into your Web/PHP applications.
Let's take a look at one of the Zend Framework capabilities, Zend_Pdf, which facilitates working with PDF documents from your PHP application. A full example of Zend_Pdf can be found at http://framework.zend.com/manual/en/zend.pdf.usage.html. To create and load PDF documents from your PHP application you would first create a PDF class through a statement such as:
$pdf = new Zend_Pdf();
The above statement creates a new instance of the Zend_Pdf object and that instance is referenced through the $pdf variable. Once the instance has been created a document can be loaded from a file through the following call:
$pdf = Zend_PDF::load($filename);
Changes to the PDF document can be saved by calling the 'save' method of the PDF object as follows:
Note: Prior to usage of the Zend_Pdf class and related function calls you need to include the Zend.pdf framework by including the following line in your PHP code:
Do you have questions on PHP and/or MySQL on IBM i? I would love to hear them and have a chance to feature them in future columns in IT Jungle. Send your questions for me to Ted Holt via the IT Jungle Contact page.
Erwin Earley is an advisory software engineer in the IBM lab located in Rochester, Minnesota, and heads up the Open Source Technologies Center of Competency for System i within the System i Technology Center. At that center, he provides education and enablement services for open source related technologies on System i including Linux, MySQL, and Zend's PHP. Earley currently holds certifications from Red Hat as well as the Linux Professional Institute and is a candidate for certification with Zend's PHP.
Exploring the DB2 for i5/OS Extensions to the PHP Language
Bringing i5/OS Resources to the Web
Use PHP to Bring i5/OS Resources to the Web
PHP: An Easy Yet Powerful Language Syntax
PHP on i5/OS: A Whole New Stack
Post this story to del.icio.us
Post this story to Digg
Post this story to Slashdot