TechTip: Mantis/400, a Mature, Open-Source Issue-Tracking Application in PHP

Development Tools
Typography
  • Smaller Small Medium Big Bigger
  • Default Helvetica Segoe Georgia Times

Yes, we all have source code for many commercial applications. Once we license them, that is. How about source code for free? How great is that?

 

Spoiler Alert: At the end of this TechTip is the "Ultimate Solution" to PHP databases on the System i.

 

The PHP community of programmers has long been a bastion of the open-source movement. This business model is based on the free distribution of the code and applications. Normally, "community" support is readily available on forums via the users of the software, with a modicum of help from the authors.

 

The debate over the readiness of open source for enterprise use will not continue here. What we will expose is the huge benefit of learning from open source. Having a fully operational program with easily readable source code is absolutely the best way to learn a language. And if that app can do some things that you actually need done, all the better.

 

This author became enchanted with PHP from an open-source application, Mantis Bug Tracker, which was spearheaded by Kenzaburo Ito from 2000–2002 and then Victor Boctor since 2002. Read the details at Wikipedia. Mantis has become so popular that it's included with Debian, Ubuntu, Fedora, Gentoo, Frugalware, and several other Linux distributions.

Three Flavors

Back in 2003, Curbstone had the need for three web-based systems for our geographically distributed developers. Speed of development, ability to customize, and rapid deployment were the priorities. We decided to take that open-source "bug-tracking" application and, using its extensive support for language customization (currently supporting 49 languages), turn it into the three flavors of tools we needed. The undertaking of customization was in late 2003 on a beta version of Mantis that was a "release candidate." In our case, at that time, we ran it on our Linux server that handled our marketing websites.

 

Number 1: Customer Issue Tracker

The first requirement was a bug tracker, exactly what Mantis was written to do. What we found particularly attractive was the e-mail updates that Mantis generated to the reporting customers when a tech updated the bug. We prefer, of course, to call them "issues," hence the name: Issue Tracking System (ITS). The system is also capable of segregating the issues so each customer login sees only the issues they reported.

 

030714Chandler 01

Figure 1: Issue Tracking System (ITS)

 

Number 2: Internal Implementation Log

The next was an internal implementation database to collect step-by-step details of the installation, configuration, testing, and go-live process for each of our customers. This required that the primary "record" would be the Customer, so we had one record per customer, as opposed to one record per bug report. Then the time-stamped comments would be entered by our technicians to retain the valuable details of the implementation.

 

030714Chandler 02

Figure 2: Internal Implementations Database

 

Number 3: Internal Software Design Change Requests

The third use was to help manage the development process by tracking Design Change Requests (DCRs). This had one design change per "record," and the techs could comment on it. The steps in the configurable life cycle would take the change from concept to code to customer.

 

030714Chandler 03

Figure 3: Design Change Requests

 

Customization

Since the Mantis software used configuration files to control all of the text components of the screen, customizing the app to look like three different ones was relatively easy.

 

030714Chandler 04

Figure 4: Life Cycle Customization for Each Flavor

 

The Database Challenge

The Mantis PHP application code is written on top of ADOdb, a database abstraction layer. Since PHP is often hosted on a Linux operating system, we have several high-quality, equally free, open source, relational databases from which to choose. The most popular include MySQL, Informix, ODBC, DB2, and Postgres. Were we to write an application for broad distribution as open source, we would want it to support as many independent databases as possible. And a dream come true, the ADOdb open-source effort provides that compatibility.

 

ADOdb

ADOdb is a layer of softwarea database class library, specificallythat provides a powerful SQL interface for PHP programs. This SQL superset is able to translate this standardized version of SQL to any one of the flavors the end user prefers. In fact, the ADOdb team and other contributors now support about 40 databases: Access, ADO, ADO Access, ado_mssql, borland_ibase, DB2, fbsql, Firebird, iBase, Informix, Informix72, LDAP, MS SQL, mssqlpo, MySQL, MySQLi, mysqlt ormaxsql, Netezza, oci8, oci805, oci8po, ODBC, ODBC_DB2, ODBC_MS SQL, ODBC_Oracle, ODBTP, ODBTP_Unicode, Oracle, PDO, Postgres, Postgres64, Postgres7, Postgres8, Postgres9, SAP DB, SQL Anywhere, SQLite, SQLitepo, Sybase, and Visual FoxPro.

 

ADOdb is so well-designed that the library also works under the Python programming language.

 

DB2/400

Given our familiarity with DB2, our company was glad to join the PHP experts from Zend and IBM, along with Alan Seiden, to work on Mantis. The goal was to modify the ADOdb abstraction layer to support the particular flavor of SQL used in DB2 on the AS/400 (DB2/400), aka System i (the name you have to type twice in order to ensure the "i" stays lowercase). Prior to the 1990s, IBM produced a platform-specific version of DB2 for each major operating system.

 

The Team

In late 2006, we undertook to enhance ADOdb in the Mantis code to support DB2/400. And the team including Alan Seiden (alanseiden.com), Victor Boctor (MantisBT.org), Jim Dillard and Edward Kietlinski (Zend.com), Jon Rush and John Paris (IBM), this author (Curbstone.com), and othersattacked the pre-release Mantis code. The result is posted at the Mantis400.com website.

 

The result was completely operational and informative, and it worked. However, we were expecting a new product from Zend that might make the effort merely a valuable technical exercise.…

 

The Ultimate 2014 Solution: ZendDBi

And for those of you wondering what we do to use later versions of Mantis that do not have the DB2/400 ADOdb modifications, ever-productive Zend has the perfect answer.

 

While modifying ADOdb to support DB2/400 might sound like a great solution, Zend did one better. Instead of leaving the System i database "non-standard," they created a new software layer that makes the DB2/400 look just like MySQL to PHP applications! This is now available to all V6R1 systems and higher.

 

This is the perfect solution to running and building PHP applications for the IBM i. It takes advantage of the storage of the data in native physical files, while the application thinks that it's using MySQL, the most popular database.

 

Download your free ZendDBi here and run any PHP application that uses MySQL, and store the data natively in physical files!

 

Ira Chandler

Ira Chandler is the founder of Curbstone Corporation and has been programming communications software since 1981. Ira wrote the first commercial credit card processing software for the IBM AS/400 in 1993.

 

Currently, more than 300 companies, universities, and government entities have selected the IBM i operating system and Curbstone Card, Ira's company's PCI-security-validated payment server, including MIT, Harvard, WW Norton Publishing, Fisher Scientific, Campbell Hausfeld, Sunbelt Rentals, AdoramaCamera.com, Penn State University, Beneteau Yachts, Hornady, and the U.S. Space & Rocket Center.

 

While Curbstone software is primarily written in RPGLE, Curbstone was the first to publish a commercial PHP application for the System i, the Shopping Cart Pipeline, and remains committed to the PHP language.

 

Ira Chandler can be contacted at 888-844-8533 or This email address is being protected from spambots. You need JavaScript enabled to view it. (Curbstone.com).

BLOG COMMENTS POWERED BY DISQUS

LATEST COMMENTS

Support MC Press Online

$

Book Reviews

Resource Center

  •  

  • LANSA Business users want new applications now. Market and regulatory pressures require faster application updates and delivery into production. Your IBM i developers may be approaching retirement, and you see no sure way to fill their positions with experienced developers. In addition, you may be caught between maintaining your existing applications and the uncertainty of moving to something new.

  • The MC Resource Centers bring you the widest selection of white papers, trial software, and on-demand webcasts for you to choose from. >> Review the list of White Papers, Trial Software or On-Demand Webcast at the MC Press Resource Center. >> Add the items to yru Cart and complet he checkout process and submit

  • SB Profound WC 5536Join us for this hour-long webcast that will explore:

  • Fortra IT managers hoping to find new IBM i talent are discovering that the pool of experienced RPG programmers and operators or administrators with intimate knowledge of the operating system and the applications that run on it is small. This begs the question: How will you manage the platform that supports such a big part of your business? This guide offers strategies and software suggestions to help you plan IT staffing and resources and smooth the transition after your AS/400 talent retires. Read on to learn: