[nycphp-talk] Many pages: one script
ken at secdat.com
Mon Aug 6 08:45:06 EDT 2007
Elliotte Harold wrote:
> I'm considering a simple site that I may design in PHP. PHP is
> probably the simplest solution except for one thing: it carries a very
> strong coupling between pages and scripts.
This may be implied by examples, but it is simply not true. PHP, like
any other generalized language, allows you to easily create any kind of
structure for your code that you want and map it URLs and databases web
services any way you want.
A common pattern is called the "universal dispatcher", where one file,
typically index.php, accepts all queries and parses the request
parameters and dispatches the request to some other program.
> As far as I've ever been able to tell PHP really, really, really wants
> there to be a single primary .php file for each URL that does not
> contain a query string (though that file may of course invoke others).
Not true. I think that if you go this impression, the rest of your
questions may not be valid, as they may take this false assumption as
true. What do you think?
> For the system I'm designing that simply won't work. In Java servlet
> environments it's relatively trivial to map one servlet to an entire
> directory structure, so that it handles all requests for all pages
> within that hierarchy.
I don't think I can parse this statement without knowing what is in
those "pages", why there is a servlet handling them, and what kind of
content they are, media? interactive database table maintenance?
> Is there any *reasonable* way to do this in PHP?
Again, I'm not clear on what you are trying to serve. We probably have
to back up to the beginning and erase the assumption that PHP has a
one-to-one correspondence between a URL (or page) and a PHP file.
Having erased that, we have to ask what kind of content you are trying
to serve, then we have to look at PHP examples.
Then it would probably make sense to talk about whether to use
mod_rewrite, talk about how PHP do its own kind of mod_rewrite, how to
build libraries in PHP and so forth.
The hardest part is not to relate it to what you already know, such as
Java. That will really slow you down.
Secure Data Software, Inc.
631-689-7200 Fax: 631-689-0527
More information about the talk