I've been writing about the Presentation, Business and Persistence tiers (and within each of them the MVC or Model, View, Controller or MVC structure) for a JBoss presentation I'm doing this week - but I scarcely expected to find myself putting them to good if unusual use this evening when sorting out an old page on our web site which had - err - laid neglected in a Perl script since before the last site update. How to fix this without re-writing what's actually a very nice piece of Perl ...
I've designated the Perl to be the business layer, and I've added an "Internal" interface type to it as well as the "post" and "get" interface.
In my new-look PHP page, I call up the Perl script through that internal interface passing in parameters as appropriate from the PHP using a shell_exec call. The internal interface returns a result set which I can then integrate in my presentation layer.
Neat - and what could have been a major rewrite was done in an hour. I've always said that the Java principles are great for the larger applications / sites and I'm glad to have had an opportunity to apply them!
(written 2006-04-17, updated 2008-05-10)
Associated topics are indexed under
A801 - Web Application Deployment - Overview of J2EE technologyH310 - PHP - Putting it all together [3454] Your PHP website - how to factor and refactor to reduce growing pains - (2011-09-24)
[2931] Syncronise - software, trains, and buses. Please! - (2010-08-22)
[2635] A PHP example that lets your users edit content without HTML knowledge - (2010-02-14)
[2275] Debugging multipage (session based) PHP applications - (2009-07-09)
[1962] Index Card System for Game Characters in PHP - (2008-12-27)
[1840] Validating Credit Card Numbers - (2008-10-14)
[1794] Refactoring - a PHP demo becomes a production page - (2008-09-12)
[1754] Upgrade from PHP 4 to PHP 5 - the TRY issue - (2008-08-15)
[1716] Larger applications in PHP - (2008-07-22)
[468] Stand alone PHP programs - (2005-10-18)
H999 - Additional PHP Material [3210] Catchable fatal error in PHP ... How to catch, and alternative solutions such as JSON - (2011-03-22)
[3118] Arrays of arrays - or 2D arrays. How to program tables. - (2011-01-02)
[2684] Exception handling in PHP - (2010-03-18)
[2215] If nothing, make it nothing. - (2009-06-02)
[2073] Extra PHP Examples - (2009-03-09)
[1623] PHP Techniques - a workshop - (2008-04-26)
[1519] Flipping images on your web page - (2008-01-26)
[1505] Script to present commonly used images - PHP - (2008-01-13)
[1485] Copyright and theft of images, bandwidth and members. - (2007-12-26)
[1451] More PHP sample and demonstration programs - (2007-12-01)
[1391] Ordnance Survey Grid Reference to Latitude / Longitude - (2007-10-14)
[1390] Converting from postal address to latitude / longitude - (2007-10-13)
[1389] Controlling and labelling Google maps via PHP - (2007-10-13)
[1270] PHP Standalone - keyboard to screen - (2007-07-18)
[1194] Drawing hands on a clock face - PHP - (2007-05-19)
[1104] Drawing dynamic graphs in PHP - (2007-03-09)
[1053] Sorting people by name in PHP - (2007-01-26)
[1020] Parallel processing in PHP - (2007-01-03)
[1010] Dates, times, clickable diarys in PHP - (2006-12-28)
[937] Display an image from a MySQL database in a web page via PHP - (2006-11-22)
[917] Syntax checking in PHP - (2006-11-07)
[839] Reporting on the 10 largest files or 10 top scores - (2006-08-20)
[822] PHP - a team member leaves - (2006-08-04)
[806] Check your user is human. Have him retype a word in a graphic - (2006-07-17)
[789] Hot answers in PHP - (2006-07-02)
[665] PHP Image viewing application - (2006-04-01)
[603] PHP - setting sort order with an associative array - (2006-02-13)
[563] Merging pictures using PHP and GD - (2006-01-13)
[493] Running a Perl script within a PHP page - (2005-11-12)
[483] Double Dollars in PHP - (2005-11-02)
[372] Time calculation in PHP - (2005-07-08)
[337] the array returned by preg_match_all - (2005-06-06)
[322] More maps - (2005-05-23)
[320] Ordnance Survey - using a 'Get a map' - (2005-05-22)
[239] What and why for the epoch - (2005-03-08)
[54] PHP and natural sorting - (2004-09-19)
P221 - Perl on the Web [3875] Using CGI and Perl to put a simple application online. Sometimes still the best way. - (2012-09-30)
[2551] Perl and the Common Gateway Interface - out of fashion but still very useful? - (2009-12-26)
[1198] From Web to Web 2 - (2007-05-21)
[975] Answering ALL the delegate's Perl questions - (2006-12-09)
[662] An unhelpful error message from Apache httpd - (2006-03-30)
[641] Simple but rugged form handling demo - (2006-03-10)
[590] Danny and Donna are getting married - (2006-02-03)
[433] FTP - how to make the right transfers - (2005-09-01)
Q915 - Object Orientation and General technical topics - Principles of Model - View - Controller [4066] MVC and Frameworks - a lesson from first principles in PHP - (2013-04-19)
[4010] Really Simple Rails - (2013-02-17)
[3919] What is a web framework? - (2012-11-10)
[3705] Django Training Courses - UK - (2012-04-23)
[3624] Why do we need a Model, View, Controller architecture? - (2012-02-25)
[3237] Using functions to keep look and feel apart from calculations - simple C example - (2011-04-09)
[2612] The Model, View, Controller architecture (MVC) - what, why and how. - (2010-02-01)
[2199] Improving the structure of your early PHP programs - (2009-05-25)
5352
Some other Articles
Testing you Perl / PHP / MySQL / Tcl knowledgeAdding Virtual HostsThe call of natureAre you free on Friday evening?Presentation, Business and Persistence layers in Perl and PHPName Services - telling your LDAP from your DNSA couple of days awayStaying in the countrySupporting users on Linux and UnixIran has enriched uranium ...