On Sun, 18 Aug 2002, Jonathan Lonsdale wrote:

> Here's a few approaches I thought of:

In a previous life[1] I made a system that was configured like

<perl>
  my $site1 = new Foo::Site(site => 'www.example.com');
  $site1->register_handler(
    new Foo::ImageHandler(path => '/images/', format => 'png');
  );
  $site1->register_handler(
    new Foo::SomeOtherHandler(...);
  );
  ...
</perl>

<VirtualHost>
   ...
   PerlHandler $site1->take_request
</VirtualHost>

(it wasn't quite like that; the site configurations were all in Perl
modules dynamically utilizing perl_sections to configure Apache).

When running register_handler, the Foo::Site object would call some
method on the Handler object to figure out which namespace or which
requests it wanted to handle.  During take_request it would then
just dispatch the right handler.

This made it really easy to activate a subsystems when the customer
needed them.  The system also made it easy to customize the handlers
for each customer. (Just inherit the base Foo::BarHandler into
Customer::BarHandler and add the extra magic).

  - ask

[1] okay, not quite a previous life; but it is more than 4 years
ago. :-)

-- 
ask bjoern hansen, http://www.askbjoernhansen.com/ !try; do();

Reply via email to