I’ve been hearing from people confused about Zend Server editions on IBM i. Yes, Community Edition was removed with Zend Server 7/8, but Zend replaced that with the no-charge “Basic” edition. The Basic edition exists only on IBM i. It requires registration but at no cost. Zend Server for IBM i can be downloaded here.

While I often recommend the Professional or Enterprise editions of Zend Server for the value-added tools and for Zend’s professional support, rest assured that free PHP still exists, with the Basic edition.

In Batch PHP I showed how to call PHP from a command line. For example, with Zend Server 6 or 7 on IBM i, one would launch a PASE command line using the command CALL QP2TERM, or launch QShell using QSH, then type a command such as this:

/usr/local/zendsvr6/bin/php-cli myscript.php

For those of us who use PHP-CLI often, the above command can be a finger-buster. Let’s shorten the path by creating a symbolic link:

cd /usr/bin
ln -s /usr/local/zendsvr6/bin/php-cli phpc

I created the symbolic link in /usr/bin, a directory that is likely to be in any user’s path.

Now try the shortened command:

phpc myscript.php

To test the shortcut without a PHP script, use the -v switch, which requests version information (‘v’ for version) about your PHP installation.

phpc -v

The above command will return version information that starts out something like this:

IBM i services comprise a collection of DB2 and SQL objects that provide a wealth of system information. The GROUP_PTF_INFO view, for example, will display an IBM i’s Technology Refresh (TR) level to the user who runs this SQL:

When run on my server, the result was a single column, TR_LEVEL, with the value:

SEIDENI is running V7R2M0 with TR level: 3

Time for me to upgrade, yes?

Here was the original post with older techniques:

I recently needed to know if a client’s IBM i 7.1 system had Technology Refresh 4 (TR4). If it did, I could use the relatively new INSERT with remote SUBSELECT technique, which allows a single SQL statement to copy DB2 data from one partition to another. Such are the benefits of keeping current with Technology Refreshes.

TRs, which were introduced with IBM i 7.1, are packaged as Program Temporary Fixes (PTFs). They can be found with the DSPPTF command.

First, determine the product number of the licensed internal code of your system. For 7.1, the product number is 5770999.

Then use the DSPPTF command followed by this product number. For example:

DSPPTF 5770999

When run on my test system, this command produced a list of PTFs that included MF99007, MF99006, MF99005, MF99004, MF99003, MF99002, and MF99001.

Because Technology Refresh PTF numbers follow the format MF99nnn, where nnn is the TR number (bolded above), I knew that TR7, TR6, TR5, TR4, TR3, TR2, and TR1 were available. I was pleased to learn I could use TR4’s enhancements to DB2.

ZendCon, the premier PHP conference, October 27-30, 2014, in Santa Clara, California, has a discount expiring August 15 31 (extended!). When you register, be sure to include the tutorial day (Oct. 27). If you already registered but forgot to add the tutorial day, you can contact the organizers via a link at the bottom of the registration page. Among other half-day tutorials, I’ll be presenting two focused on IBM i:

PHP Performance on IBM i

If you’re interested in performance of PHP, or IBM i generally, in order to scale your application up to meet increased user demand, or if you have specific performance needs right now, you’ll want to attend.

DB2 on IBM i has received major enhancements over the past year, including a dozen new settings in the PHP ibm_db2 middleware. Hear how they can help improve security, performance, and stability. Other topics will include, but not be limited to:

Basic topics (with added commentary to make it interesting for everyone) such as library lists, prepared queries for security, persistent connections

DB2 in frameworks

Zend Framework 2

Including pagination (page-at-a-time logic)

Status of PDO and how it can be used in Laravel and other frameworks

The real scoop about modernization and the DDS vs. DDL (SQL) debate

Connecting to IBM i’s DB2 from Windows and Linux and other IBM i partitions

How to link MySQL-based applications (WordPress, etc.) to DB2 with the DB2 Storage Engine, with special tips

Using DB2’s HTTP features to make PHP-based web services even more accessible, including to allow RPG to call PHP and get results back

How to optimize queries

Strategies to safely open your application to the public

Topics and questions that YOU request (contact me in advance if you wish)

My co-presenter for tutorials will be IBM’s Tony Cairns, who helped bring PHP to the IBM i in the first place. He also created XMLSERVICE (toolkit back-end) and is a maintainer of ibm_db2 on the IBM i. One reason Tony comes to ZendCon is to hear from attendees such as yourselves. Normally he stays locked up in his lab. Take advantage of this opportunity to meet him. Watch Tony and me argue and debate in front of the class!

I’m also presenting a session during the regular conference about the PHP Toolkit for IBM i. I’ve updated my presentation with new features of the toolkit and best practices for calling RPG and COBOL.

ZendCon‘s topics are generally advanced ones to enable professional, enterprise-ready development practices. There’s also an IBM i track and plenty of networking time so that IBM i users of PHP can learn from speakers and each other, making the conference appropriate for intermediate users of PHP on IBM i as well.

Hope to see you there, October 27-30, 2014! Remember to register for tutorial day when you register for the conference. Get in touch with questions you’d like answered during my presentations.

Hope you enjoy these four videos (plus an outtake) I made with fellow speakers Dawn May and Charles Guarino to promote this year’s COMMON conference to be held in Orlando, Florida, from May 4-7, 2014, with optional pre-conference workshops May 3. I’ll be speaking about PHP and performance on IBM i. http://www.common.org/index.php/annualmeeting.html