PHP dynamic programming language

Continuous Integration for PHP Extensions

(Co-written with Alan Seiden)

CI/CDContinuous Integration (CI) ensures that every time a developer commits changes to a version control system such as Git, the code is automatically built and subjected to automated tests.

CI has been invaluable to us. As maintainers of PHP’s PDO_IBM and ibm_db2 extensions, we use CI to ensure high quality across platforms.

Platforms supported by PHP’s extensions for Db2 include IBM i, Unix/Linux, and Windows. While our focus is IBM i, we must ensure compatibility with the others. Reliance on manual testing would introduce the risk of broken builds or subtle bugs. Automation is a must.

In this post, we explain how we use CI principles when building and testing PHP’s Db2 extensions.

Read more

ODBC Connection Strings for IBM i Db2

ODBC with Db2 for IBM iAs ODBC gains popularity for IBM i database access, developers of web applications and APIs need information on defining ODBC database connections. This article demonstrates tips and techniques for effectively using ODBC connection strings in all programming environments, including popular languages such as PHP, Python, and Node.js.

For an example of how connection strings are used in a program, see How to Query IBM i Data with PHP and PDO_ODBC.

Read more

How to Query IBM i Data with PHP and PDO_ODBC

ODBC & Db2 for iOf the PHP extensions that can connect to IBM i Db2, we recommend PDO_ODBC whenever possible.

Although the classic extensions (ibm_db2, PDO_IBM) and older ODBC continue to work, we prefer PDO_ODBC for several reasons:
Read more

Alan’s PHP Tips to Wow Your Users [VIDEO]

“The order entry app is hanging again!”  Nobody wins when your system is slow or stuck.

Find out how the best IBM i teams keep their users happy and productive with snappy PHP applications. In this video, Alan shares tips to optimize PHP websites and APIs for improved speed and stability. He explains why newer PHP versions are inherently faster and offer smoother migrations. He also details how to use Apache’s mod_deflate, look for network issues and bots, manage session clean-up, prepare for business growth, improve PHP Db2 performance, profile your application, and much more.

Read more

Does Our PHP API Need a Framework? A Q&A with Rob Allen

API To follow up on Rob Allen’s article about choosing a PHP framework for APIs, here is an edited discussion between Rob and a developer at a Seiden Group client regarding their new API.

In this discussion, Rob addresses common developer concerns about frameworks for APIs.

Read more

How to Upgrade Zend Framework 1 to PHP 7.4 or 8.x

Zend FrameworkFor security, performance, and developer productivity, we’ve been encouraging PHP users to upgrade to current versions of  PHP with our free PHP upgrade assessmentmonthly updates to CommunityPlus+ PHP, migration services, and SmartSupport tune-ups. What gets in the way of upgrading PHP? Often, it’s an old framework release, such as Zend Framework 1 (ZF1), which reached end of life in 2016. This article will show an easy way to upgrade PHP, even with ZF1 applications.

Read more

How to Choose a PHP API Framework

APIAlan and I provide mentoring in API strategy for a software company who asked us whether they should use a PHP framework and, if so, which one would be best. They also wondered whether to invest in a commercial API gateway.

My thoughts on APIs and frameworks struck Alan as useful for any language and platform. Alan encouraged me to document my “philosophy of frameworks” here for anyone planning to develop web apps or APIs.

Read more

New IBM i extension for PHP

PHP on IBM iOne of the open source components we’ve built at Seiden Group is a new extension to enhance PHP’s integration with IBM i.

Although most business requirements are met by the existing ibm_db2 and PDO_ODBC extensions plus the PHP Toolkit, the new php-ibmi makes it easier to accomplish several (formerly) difficult or impossible tasks—especially for tool vendors, and when troubleshooting.

We’ve built six functions thus far, with the possibility of more in the future. Let us know what you think.

Read more

ibm_db2 & ODBC Run Side-by-Side in Seiden CP+ PHP

Historically, PHP on IBM i implementations demanded loyalty to a single database connection style. You had to choose either the classic extensions (ibm_db2 / PDO_IBM) or the ODBC extensions (odbc / PDO_ODBC.) Operating system limitations prevented both types from being loaded at the same time.

In July 2021, we overcame those limitations to coexisting database extensions in Seiden CommunityPlus+ PHPYes, now the classic PHP database extensions can run side-by-side with ODBC! We will explain how this was done in a future blog post.

As of this writing, you’ll find this feature exclusively in CP+ PHP. When you install Seiden CP+, all db2 extensions (ibm_db2, PDO_IBM, odbc, and PDO_ODBC) are enabled by default.

Read more

PHP 7.3 Enters End of Life Today—Free Upgrade Assessment

PHP on IBM iPHP 7.3 entered end of life today and will no longer receive fixes—including security fixes.

If you’re still running applications on PHP 5.4, 5.6 or 7.3 (run php -v to check), it’s time to schedule a free upgrade assessment.

PHP upgrades are easier now, thanks to IBM’s adoption of RPM-based open source packages. Over the past year, our clients have reported smooth and even enjoyable migrations to CommunityPlus+ PHP 7.4 and 8.0.

Read more