This is a set of interoperating modules which provide an object-oriented
method of developing applications on Apache under mod_perl. The system
is comprised of a handler (Apache::Wyrd::Handler) and a family of
modules that the handler is able to call based on the HTML content of
the files it processes.
The modules are configurable via tag-like strings in the HTML code
itself, and are meant to produce output on HTML pages where the strings
are placed. The strings are meant to be intuitive for an HTML coder to
use while also giving a perl programmer a ready library of tools to draw
on to make these HTML-friendly strings. For convenience, these strings
are referred to as "Wyrds" and are comprised of (X)HTML tags named after
the perl modules they represent.
The Apache::Wyrd modules are meant to be abstract classes, so that a
functional namespace can be derived from the Apache::Wyrd family of
modules for each web site supported on a server. The new namespace will
then have its own set of object names for each individual Wyrd.
To illustrate, assume a namespace of "FOOBAR"--For the derived classes,
the subclassing of certain modules (FOOBAR::Wyrd, FOOBAR::Handler, and
FOOBAR::DBL) will automatically give access on pages of the site handled
by FOOBAR::Handler to all the derived classes of Apache::Wyrd in the
Apache::Wyrd namespace. These objects are inserted onto pages by
FOOBAR::Handler when it encounters a string with the proper syntax, for
example:
There are <FOOBAR::Lookup query="select count(*) from items" /> items
available in this online database.
Automatically instantiates Apache::Wyrd::Lookup and uses it to make an
SQL query, inserting the result onto the location of the page where the
string is found.
In addition to deriveable classes, the Apache::Wyrd family includes some
service modules and handlers (Apache::Wyrd::Services::*) which provide
authentication, indexing, data structure management, and other services
useful for Apache mod_perl development. There is also a small, but
robust collection of objects designed to make the creation of complex
forms and database interfaces more rapid. Also included is a set of
interface classes to equip objects derived from Apache::Wyrd with
frequently-required functionality.
Apache::Wyrd is not meant to be a complete set of applications or a
competitor to other pre-parser software packages such as Mason, PHP, or
ColdFusion. It is designed, rather, to give an experienced perl
programmer a set of ready tools to rapidly convert a largely "static"
website to a dynamic one within tight monetary or time constraints
without sacrificing future development options or compromising code
reuse.
It has been made available by Wyrdwright, Inc. under the GPL, and
consequently comes with the GPL's rights and caveats. Please see the
file "LICENSE". It was developed with NGO partners and is meant to be
always be available to the public free of charge and with no vendor
lock-in.
We hope you find it useful.
=============
DOCUMENTATION
=============
All the Wyrds have their own documentation in POD form.
The first three give the basics:
Apache::Wyrd::Handler The Handler Module
Apache::Wyrd The abstract self-parsing embeddable object
Apache::Wyrd::DBL The "switchboard" of Apache and DBI connnections
Then the support classes provide much-used functionality: