Assembling the Application
Finally, you can integrate the classes and templates into a complete application. This section creates a dual web and command-line program that shares the same set of code but abstracts out the details, such as processing the different sources of input data.
Creating the Web Version
The web version gets its input from a form embedded in the HTML template’s header, as shown in Example 10-19.
Example 10-19. Web-enabled address book application
// Configure format-specific details $input = $_POST; $template = new htmlTemplate; // Set mode if (isset($input['mode'])) { $mode = $input['mode']; } else { $mode = false; } try { // Create address book $ab = new addressBook; // Load data into Person $person = new Person($input); // Add person, if necessary if ($mode = = 'add') { $ab->addPerson($person); } // Return results $ab->search($person); // Print page $template->printAll($ab); } catch (Exception $e) { $ob = ob_start( ); print $e; error_log(ob_get_clean( )); }
At the top of Example 10-19, you set a few
configuration variables. Since this is the web version, the
$input
comes from $_POST
and
the $template
is an
htmlTemplate
. Later, you will set
$input
and $template
to
different values in the command-line version.
The $mode
variable, which controls whether you
should add a new person, is assigned using the
mode
element of the input source.
Once everything is set up, create the addressBook
and Person
objects. Use the
$input
array to configure
Person
.
Now, if the $mode ...
Get Upgrading to PHP 5 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.