|
Posted by Lόpher Cypher on 12/31/05 16:44
hajaansh@googlemail.com wrote:
> Hi there,
>
> I am creating my own php site but am a bit concerned with putting all
> form processing into a page that is also displaying stuff (i get
> overwhelmed with very long pages and like to separate processing from
> displaying for maintainability). I found a possible way of separating
> processing through using a redirection such as:
>
> header("Location:" . mylocation);
>
> so if i was logging into my site instead of going straight to the page
> it needs to go to and doing all the post processing there I would have
> a "processing page" which would redirect me to the correct location
> perhaps depending on what was written. So if the incorrect password was
> given it would go to an error page otherwise the user would be
> successfully logged in. My processing pages would be in effect the
> controller in the MVC pattern.
>
> I was wondering if there were any problems people see in this and in
> what situations people use it if at all and in which cases not. It
> seems a misuse but if it works....who cares?
>
> It may even be standard practise but I have looked at quite a lot of
> open source php projects and found that most people do a lot of
> processing in the pages that do the displaying.
>
> Cheers for all your advice,
>
> funky
>
I don't think doing everything in one place is a good way. That's why
they invented MVC :)
Anyways, one way would be:
Have a control url parameter, say, page.
Define an array like this:
$pages = array(
"id1" => "class1",
"id2" => "class2",
...
"idN" => "classN"
);
Now have a script retrieve the url parameter, and instantiate the
respective class. Have all classes have a method to output content:
$id = $_REQUEST["page"];
$class = $pages[$id];
$obj = new $$class();
$obj->output();
The script will be your controller, the array will be the model, and the
classes will be the viewports, perhaps together with persistence layer.
This is, of course, overly simplified :)
luph
Navigation:
[Reply to this message]
|