Time Is Money (part 2) - Happy Endings (
Page 11 of 11 )
And that just about concludes this case
study. Throughout this development effort, I have made widespread use of PHP's
session management capabilities, date and string functions, HTTP header
functions, and database access capabilities. If you are new to PHP, I hope that
the effort has been instructive, and that it has helped you gain a greater
understanding of these powerful open-source tools.
If you'd like to learn
more about some of the issues, techniques and functions described throughout the
course of this article, here are a few links:
The Fundamentals of
Relational Database Design:
Date
functions
http://www.php.net/manual/en/ref.datetime.phpmySQL functions available in PHP:
http://www.php.net/manual/en/ref.mysql.phpIf
you'd like to read up on other case studies like this, do consider visiting the
following links:
Miles To Go Before I Sleep:
http://www.devshed.com/c/a/PHP/Miles-To-Go-Before-I-Sleep/Cracking
The Vault:
http://www.devshed.com/c/a/PHP/Cracking-The-Vault-part-1/Despite
my protestations to the contrary (and my fear that I'm going to have to cut
short my overly-long lunch hour once the Boss gets his hands on it), I believe
that a tool such as the one described over the preceding pages offers tremendous
benefits to any organization in its efforts to streamline business processes and
allocate resources more efficiently. By obtaining and storing information in
electronic format, it reduces paperwork and simplifies resource accounting; by
imposing a structure on user information, it makes it easier and quicker to
locate, present and analyze raw data; and by using a database, it ensures that
data does not get corrupted.
It should be noted also that this is an
initial release of the application, and I expect it to evolve further, with new
features being added and old features being upgraded. It's always a good idea to
review both design and code as the application evolves - I plan to do this a
little further down the road, and to make changes to both the database schema
and the scripts themselves. This process should take place in conjunction with
the development plan for new features, so that the addition of new features does
not add to overhead and cause performance degradation.
That said, let me
also add that when I delivered the finished product to the Customer at his
uptown office (a couple hours ahead of deadline), he was thrilled to bits, and
the severe HRD minions looked delirious with delight. In fact, the Customer was
so impressed that, in the five minutes I spent alone in his office,
he:
offered me one of his foul-smelling cigars (which I politely
declined);
offered me a job (which I also politely declined);
and
offered us a long-term software development contract (which I was happy to
accept on behalf of the Boss);
Needless to say, the Boss was equally
thrilled with the outcome and indicated that I would shortly be receiving a
bonus and some vacation time for my efforts...naturally, after executing the
Customer's next project. In fact, the Boss said, he was thinking of making me
point man for the Customer's entire development contract, a statement which made
my blood freeze and my stomach rumble in fear of the impending
ulcers...
What, you were expecting a happy ending? Get real!
Note:
All examples in this article have been tested on Linux/i586 with Apache 1.3.12,
mySQL 3.23 and PHP 4.06. Examples are illustrative only, and are not meant for a
production environment. YMMV!