Recently we’ve heard from several clients seeking help with Zend Server upgrades. While generally straightforward, upgrades can require an extra step with very old versions of Zend Server. “Old” means Zend Core or Zend Server 5.1 or earlier. Upgrades from these old versions may require a migration from Easycom to the “new” PHP to IBM i toolkit.
PHP dynamic programming language
Now that speedy PHP 7 is available for IBM i, we’ve been helping clients upgrade to this long-awaited release. Here are some resources for performing this popular upgrade.
First, we recommend Rod Flohr’s article Migrate to Zend Server 9 from Previous Versions, which contains both basic instructions and special tips.
Seiden Group colleague Josh Hall and I will attend Laracon, the Laravel conference, in NYC on July 25-26, 2017. Getting these coveted tickets required persistence — they sold out quickly!
Laravel is a hot PHP framework with a loyal community. We’ve been building our Laravel practice and look forward to sharing the latest tips and techniques with our clients.
According to creator Taylor Otwell, the first commercial installation of Laravel was on an IBM i system!
PHP 7 is creating excitement among PHP aficionados for its speed and additional language techniques.
Recently, a change occurred on the Zend Server download page that has caused some confusion. At the time of this writing, the Zend Server download was labeled as a “30-day trial” even though, as an IBM i customer, you are still entitled to a free basic edition license. Of course, you can also opt for paid editions.
IBM i users can request a download of Zend Server for IBM i and PHP 7 here, confident that they will obtain a legitimate license, not a trial license. Fill out the form and you’ll be sent a download link. You’ll then be able to choose between the free basic license and value-add paid licenses.
The Seiden Group team is headed to Orlando May 6-10 to participate in COMMON 2017. In addition to teaching sessions and workshops on best practices for using PHP and other open source technologies on IBM i, we’re looking forward to meeting up with our clients and friends.
One of our favorite opportunities at COMMON is to meet professionals at all levels of the IT organization. Understanding the challenges faced by each member of the IT team — from admin to CIO — strengthens our ability to build effective solutions that are easy to use, easy to extend, easy to maintain.
In just two weeks I’ll have the pleasure of joining some of the top IBM i development experts in Orlando for the RPG & DB2 Summit. Run by Susan Gantner, Jon Paris and Paul Tuohy, this conference is full of big personalities who create a warm, friendly environment that’s perfect for learning.
I enjoy the community feeling and how excited everyone is to solve development problems and share tips and techniques.
The RPG & DB2 Summit is one of the few training events that focuses exclusively on topics of interest to IBM i developers. That includes PHP and SQL, of course!
Check out the session grid and pay special attention to the Hands-on PHP Workshop on Monday, March 20, followed by several PHP and open source sessions given by yours truly and Zend’s Mike Pavlak, plus a whole array of SQL sessions. And maybe a few on RPG.
I think they should change the name of the conference to the RPG, PHP, SQL & DB2 Summit, don’t you?
Come join us!
Every year I look forward to WMPCA’s Spring Technical Conference. And it’s not just because this active IBM i user group does a great job of bringing experts to beautiful Wisconsin (in March!) to teach a broad range of IBM i topics.
I also love meeting the next generation of IBM i talent, always represented by Jim Buck’s RPG students at Gateway Technical College.
And, of course, there are many PHP and open source sessions to choose from, including these from me:
- Make Your IBM i Sizzle with WordPress
- Apache Web Server Magic on IBM i
- Using DB2 and SQL with Open Source Languages on IBM i
- PHP Tricks for the RPG Programmer: Graphics, Excel, PDFs, E-Mail and More
Also check out these sessions from our good friend Mike Pavlak:
- PHP Web Security in an Insecure World
- Web Services with PHP on IBM i
I could go on and on with recommendations, but I’m sure you’ll find plenty to love on your own.
Join us at the WMCPA Spring Technical Conference on March 14-16, 2017, at the Lake Lawn Resort on the shores of Delavan Lake!
I’m proud to have written the foreword for BCD’s new eBook, Top 10 Reasons to Choose PHP for IBM i Web Application Development. In this free eBook, author Duncan Kenzie explains why PHP has become the mainstream solution for web and mobile development on IBM i. He also guides RPG programmers toward successful adoption of PHP in their shops.
Thanks to BCD and Zend for sponsoring this eBook. Download it free here: https://www.bcdsoftware.com/lp/websmart-php/php-on-ibm-i.php
To read an interview with me, about PHP and the eBook, by Dan Burger of IT Jungle: http://www.itjungle.com/tfh/tfh020116-story05.html
I recently joined speaker and consultant Paul Touhy for a spontaneous, personal ‘iTalk with Tuohy’ recorded chat, described thus: “Paul Tuohy talks to development guru Alan Seiden about developing in PHP, the PHP for IBM i Toolkit, performance for developers and getting your work-work balance right.”
The free recording is available here: http://www.ibmsystemsmag.com/ibmi/trends/iTALK-WITH-TUOHY/seiden-development-balance
Exact name is required when calling a service program’s procedure
Some developers make a common mistake when calling a procedure in a service program using the PHP Toolkit for IBM i or any toolkit based on XMLSERVICE. It’s easy to supply the wrong procedure name, or the right name in the wrong case (upper/lower/mixed). Using this example of calling a procedure using the toolkit, we find the following (correct) program/procedure call:
$result = $conn->PgmCall('MYPGM', 'MYLIB', $params, $retParam, array('func'=>'myproc'));
The procedure name ‘myproc’ must be given exactly as it is, not ‘MYPROC’ or ‘MyProc’, because under some circumstances the name may be case-sensitive.
How to determine the correct procedure name
Run the DSPSRVPGM command, using your desired library and program names as parameters:
DSPSRVPGM SRVPGM(MYLIB/MYPGM) DETAIL(*PROCEXP)
The above command will return service program information, including the names of all procedure exports. For example:
Display Service Program Information Service program . . . . . . . . . . . . : MYPGM Library . . . . . . . . . . . . . . . : MYLIB Owner . . . . . . . . . . . . . . . . . : PROGRAMMER Service program attribute . . . . . . . : RPGLE Detail . . . . . . . . . . . . . . . . . : *PROCEXP Procedure Exports: Procedure Name ARGOPT myproc *NO orderHeader *NO
This service program contains two procedures: ‘myproc’ and ‘orderHeader’. Thus, to call the former, we’d supply array(‘func’=>’myproc’) in the PgmCall method. If we wanted to call the second procedure, we’d use array(‘func’=>’orderHeader’), observing case sensitivity, which often matters (a topic for another day).