+ All Categories
Home > Documents > How To Start Up With PHP In IBM i

How To Start Up With PHP In IBM i

Date post: 06-Jul-2015
Category:
Upload: sam-pinkhasov
View: 2,314 times
Download: 4 times
Share this document with a friend
Description:
This presentation introduces steps for PHP jump start in IBM i (AS/400)
39
Copyright © 2007, Zend Technologies Inc. How to Start up with PHP in IBM i June, 2007 Sam Pinkhasov Project Manager for IBM products [email protected]
Transcript
Page 1: How To Start Up With PHP In IBM i

Copyright © 2007, Zend Technologies Inc.

How to Start up with PHP in IBM i

June, 2007

Sam Pinkhasov

Project Manager for IBM products

[email protected]

Page 2: How To Start Up With PHP In IBM i

Agenda

• First steps

• Accessing DB2/400

• PHP Toolkit for i5/OS

• 5250 Bridge

• PHP is ready for production by OpeniVew

• Q&A

Page 3: How To Start Up With PHP In IBM i

Zend Platform with 5250 Bridge

IBM i

DB2/400

Pgm, CMD,Spooled file

Database

Business

Zend StudioBrowser

Zend Core with Toolkit APIs

Apache webserver

Zend PHP Products for IBM I Diagram

Zend Guard

Windows/Linux

Page 4: How To Start Up With PHP In IBM i

• Setting up PHP in IBM i

• Verify installation

• Setup debug in Zend Studio and Zend Core

• Write a simple PHP code

First Steps

Page 5: How To Start Up With PHP In IBM i

• Install Zend Core Requirements

• 5722SS1 - - PASE Option (Option 33)• 5733SC1 - IBM Portable Utilities For I5/OS (Option *BASE)• 5733sc1 - OpenSSH ,OpenSST,Zlib (Option 1)

Download Zend Core for i5/OS from Zend Network• http://www.zend.com/products/zend_core/zend_core_for_i5_os

Install • RSTLICPGM LICPGM(1ZCORE5) DEV(*SAVF) SAVF(QGPL/ZCORESAVF)• SBMJOB (RSTLICPGM LICPGM(1ZCORE5) DEV(*SAVF)

SAVF(QGPL/ZCORESAVF)

• Install Zend Studio Eclipse Edition for i5/OS Download from Zend Network Install Registration

Install Zend Core and Zend Studio

Page 6: How To Start Up With PHP In IBM i

Setting up PHP in IBM i

• Requirements 5722SS1 - PASE Option (Option 33) 5733SC1 - IBM Portable Utilities For I5/OS (Option *BASE) 5733sc1 - OpenSSH ,OpenSST,Zlib (Option 1)

• Download Zend Core for i5/OS from zend.com RSTLICPGM installation Creates the ZENDCORE library, /usr/local/Zend directory, and

Zend-specific user profiles

• Start the Zend subsystem and the HTTP servers GO ZENDCORE/ZCMENU Option 5 (Service Management menu) Option 1 (Start Zend Core subsystem) or Option 4 (Start

Apache server instances)

Page 7: How To Start Up With PHP In IBM i

Setting up PHP in IBM i

• Download Zend Studio for i5/OS from zend.com Integrated development environment Runs on Windows and Linux

Page 8: How To Start Up With PHP In IBM i

• Start Zend Core console: http://i5_server:89

• Run WRKACTJOB SBS(ZEND) CL command

• Run PHP demo application installed with the product

Installation verification

Page 9: How To Start Up With PHP In IBM i

Zend Core Console http://i5_server:89

Page 10: How To Start Up With PHP In IBM i

Zend Subsystem – wrkactjob sbs(Zend)

Page 11: How To Start Up With PHP In IBM i

• Run Zend Navigator demo application• URL: http://i5_server:89/Zend_Navigator_Demo/login.php

Run PHP Application

The demo application sources are available in www/zendcore/htdocs/Zend_Navigator_Demo.

Page 12: How To Start Up With PHP In IBM i

Run Zend Navigatorhttp://i5_server:89/Zend_Navigator_Demo/login.php

Page 13: How To Start Up With PHP In IBM i

Zend Core – Debug Set Up

Page 14: How To Start Up With PHP In IBM i

Zend Core – Restart Apache

•GO ZENDCORE/ZCMENU

Page 15: How To Start Up With PHP In IBM i

Zend Studio - Debug Set Up

Page 16: How To Start Up With PHP In IBM i

Writing a simple PHP code

• Map IFS directory /www/zendcore/htdocs to Windows driver

• Start Zend Studio

• Start project wizard: New->Project

• Select Windows mapped IFS drive

• Write the following code<?php echo phpinfo(); ?>

• Save as test.php

• Run http://i5_server:89/test.php

Page 17: How To Start Up With PHP In IBM i

Writing a simple PHP code

Page 18: How To Start Up With PHP In IBM i

Running PHP command line

• From the default PASE shell. call qp2term

/usr/local/Zend/core/bin/php-cli -help

• From the System i command line (or CL program) CALL PGM(QP2SHELL) PARM('/usr/local/Zend/core/bin/php-cli' '-help')

• From QSH. QSH

/usr/local/Zend/core/bin/php-cli –help

• Example: /usr/local/Zend/core/bin/php-cli /usr/local/Zend/apache2/htdocs/DB2_example.php

Page 19: How To Start Up With PHP In IBM i

Accessing DB2/400

• Server/connection db2_bind_param db2_client_info db2_close db2_connect db2_cursor_type db2_exec db2_execute db2_prepare db2_pconnect db2_server_info db2_statistics

• Result db2_free_result db2_next_result db2_result

• Commit/Rollback db2_autocommit db2_commit db2_rollback

• Errors db2_conn_error db2_conn_errormsg db2_stmt_error db2_stmt_errormsg

• Column/Procedure db2_column_privileges db2_columns db2_procedure_columns db2_procedures db2_special_columns

• Table information db2_num_fields db2_num_rows db2_table_privileges db2_tables

• Fetch db2_fetch_array db2_fetch_assoc db2_fetch_both db2_fetch_object db2_fetch_row

• Field information db2_field_display_size db2_field_name db2_field_num db2_field_precision db2_field_scale db2_field_type db2_field_width

• Key information db2_foreign_keys db2_primary_keys

• Statement db2_free_stmt

Page 20: How To Start Up With PHP In IBM i

• There are few connections options in PHP db2_connect(“”,””,””) – local server

• The database connection job is create under the same user as the Apache httpd server profile NOBODY (*USER).

db2_connect(“127.0.0.1", “SAM", “PASSWROD")– local server • The database connection job is created under the user profile

SAM/PASSWROD.

db2_connect(“10.1.1.33", “SAM", “PASSWROD") – remote remote database connection job is created under the user server

• The profile SAM/PASSWROD.

Server connection – db2_connect API

Tip: Use WRKRDBDIRE to get the database name on the remote

Page 21: How To Start Up With PHP In IBM i

• DB2 functions • db2_connect– Connects to server• db2_prepare – Prepares an SQL statement• db2_bind_param – Binds the an SQL statement• db2_execute – Executes an SQL command• db2_fetch_array – Reads records

• View attached program DB2_example.php

Sample code accessing database

Page 22: How To Start Up With PHP In IBM i

Program Result http://i5_server:89/DB2_example .php

Page 23: How To Start Up With PHP In IBM i

Recommendations

• CCSID = 65535• PHP scripts getting “junk” back from their DB2 SQL queries. Root

problem is often QCCSID setting 65535 (binary default from manufacturing)

Change CCSID before starting Apache• signon as QSECOFR• GO ZENDCORE/ZCMENU -> stop apache• CHGJOB LANGID(ENU) CNTRYID(US) CCSID(37)• GO ZENDCORE/ZCMENU -> start apache

• Journaling (transactions) php.ini setting ibm_db2.i5_allow_commit=0 is the default. If all of your schemas/libraries have journal enabled change php.ini

to ibm_db2.i5_allow_commit=1

Page 24: How To Start Up With PHP In IBM i

Other File Functions

• PHP has number of functions allowing access and update information contained in flat files and streams on IBM i.

Open, read, write and close a flat file• fopen ()• fclose ()• fread ()• fwrite ()

Read a CSV file fgetcsv()

Look it up in the PHP manual to see files examples.

Page 25: How To Start Up With PHP In IBM i

PHP Toolkit for i5/OS

• Bundled with Zend Core

• Geared towards accessing data and resources from PHP Programs and/or service programs Data Queue CL commands Spooled files Record-level file access User Space

Page 26: How To Start Up With PHP In IBM i

PHP Toolkit for i5/OS – list of functions

• Connection management i5_connect i5_pconnect i5_close i5_pclose i5_adopt_authority i5_error i5_errno i5_errormsg

• Command calls i5_command

• Program calls i5_program_prepare i5_program_prepare_PCML i5_program_call i5_program_close

• Data retrieval i5_fetch_array i5_fetch_assoc i5_fetch_object i5_fetch_row i5_info i5_field_len i5_field_name i5_field_scale i5_field_type i5_list_fields i5_num_fields i5_result

• Native file access i5_open i5_addnew I5_edit I5_delete i5_cancel_edit i5_setvalue i5_update i5_range_from i5_range_to i5_range_clear i5_data_seek i5_seek i5_bookmark i5_free_file i5_new_record i5_update_record i5_get_keys

• SQL access I5_query I5_prepare i5_bind_result i5_execute i5_getblob i5_setblob

• Transactions i5_transactions i5_commit i5_rollback

Page 27: How To Start Up With PHP In IBM i

PHP Toolkit functions• System values i5_get_system_value

• Data areas i5_data_area_prepare i5_data_area_receive i5_data_area_send i5_data_area_close

•Print/Get spooled file i5_spool_list i5_spool_list_read i5_spool_list_close i5_spool_get_data i5_spool_from_file

• Job logs i5_jobLog_list i5_jobLog_list_read i5_jobLog_list_close

• Active jobs i5_job_list i5_job_list_read i5_job_list_close

• Objects list i5_object_list i5_object_list_read i5_object_list_close

• User space i5_userspace_crearte i5_userspace_prepare i5_userspace_get i5_userspace_put

• Data Queue i5_dtaq_prepare i5_dtaq_recieve i5_dtaq_send i5_dtaq-close

Page 28: How To Start Up With PHP In IBM i

• RPG program

Sample code calling an RPG program

Page 29: How To Start Up With PHP In IBM i

• PHP Toolkit functions • I5_connect – opens server connection• i5_program_prepare – defines the program parameters • i5_program_call – calls a program• i5_program_close – clears program handles• i5-_close – closes server connection

Sample code calling an RPG program

Page 30: How To Start Up With PHP In IBM i

PHP Toolkit Resources

• Zend Core User Guide• Zend Core for i5/OS product page –

http://www.zend.com/products/zend_core/zend_core_for_i5_os• Zend Core installation directory -

/usr/local/Zend/Zend_Core_User_Guide_i5OS.pdf

Page 31: How To Start Up With PHP In IBM i

PHP Toolkit Templates

PHP Toolkit Templates are available in Zend Studio RAD Error free code Good learning tool Code standardization Create your company specific logic

• How to access? Toolkit templates list - Window ->Preference->Templates Import/Export

• Documentation Zend Core and Zend Studio User Guide

Page 32: How To Start Up With PHP In IBM i

|

Product Definition

The 5250 Bridge is a PHP based solution for running interactive applications in the i5/OS environment

Page 33: How To Start Up With PHP In IBM i

|

Technical Overview

• PHP library containing set of PHP functions/classes accessing 5250 data stream allowing to run any 5250 interface/applications in PHP Utilizing IBM WebFace server – part of i5/OS TCP/IP All screen information available:

• Input and Output fields and attributes• Format name

Maintainable 5250 session No Java

Page 34: How To Start Up With PHP In IBM i

|

5250 Bridge Diagram

Page 35: How To Start Up With PHP In IBM i

|

Demo Program – Subfile Application

Page 36: How To Start Up With PHP In IBM i

Resources: Books

• Sklar, David. Learning PHP 5. O'Reilly Media, Inc. 2004. http://www.oreilly.com/catalog/learnphp5/

• Kelly, Brian. Getting Started with PHP for i5/OS, MC Press http://www.mc-store.com/5934.html

• Jeff Olen , Kevin Schroeder, The IBM i Programmer's Guide to PHP

http://www.mc-store.com/5096.html

• PHP: Zend for i5/OS

Redbook SG24-7327-00 http://www.redbooks.ibm.com/abstracts/sg247327.html

Page 37: How To Start Up With PHP In IBM i

Resources: Web sites

• PHP documentation at php.net http://www.php.net/docs.php

• DB2 documentation http://phpbuilder.com/manual/en/ref.ibm-db2.php

• Zend and i5/OS Overview, benefits, products, getting started http://www-03.ibm.com/systems/i/software/php/

• ReadWiki – online documentation http://www-941.ibm.com/collaboration/wiki/display/sg247327/Home

• PHP for i5/OS forums – discussion groups http://www.zend.com/forums

Page 38: How To Start Up With PHP In IBM i

Resources: Web sites

• Zend Developer Zone -Tutorials http://devzone.zend.com/public/view/tag/tutorials “Integrating PHP Using Web Services”

http://www.ibmsystemsmag.com/i5/april07/tipstechniques/12365p1.aspx

• Tips Installing Zend Core -

http://www.mcpressonline.com/[email protected]@.6b507b23 Use PHP to Bring i5/OS Resources to the Web

• http://www.itjungle.com/fhg/fhg103107-story01.html

• http://www.itjungle.com/fhg/fhg011608-story01.html

Page 39: How To Start Up With PHP In IBM i

Resources: Sample Code

• Check out the thousands of PHP scripts available that can be used as-is or as the starting point for Web projects. http://www.hotscripts.com http://www.phpjunkyard.com/ http://www.phpfreaks.com/ http://phpfreebies.com/


Recommended