|  | Posted by Jerry Stuckle on 07/31/07 01:43 
amygdala wrote:> Hi all,
 >
 > I'm starting this new project in which I'ld like to implement sort of a
 > design pattern I have seen being used in the CodeIgniter framework.
 >
 > Basically, the site will examine the URI and based on the segments of the
 > URI it will fire up some controller class, for instance, say I have an inbox
 > in which end-users can view messages they got from other users, they'ld
 > start at:
 >
 > http://www.somesite.com/inbox/view/
 >
 > This will then call upon the function view in the class inbox:
 >
 > class Inbox extends Controller
 > {
 >     // ...
 >     public function view()
 >     {
 >         // ...
 >     }
 >     // ...
 > }
 >
 > Any trailing segments of the URI will be passed as supplement arguments to
 > the function.
 >
 > Now, if $_POST variables are sent to some page and are needed by the called
 > upon function in the appropriate class, would it be bad practice to simply
 > extract those $_POST variables from the superglobal $_POST inside this
 > function? Preferably I would like to send the $_POST variables as arguments
 > to the function, but I'm not sure how to implement this correctly, nor am I
 > even completely sure as to why this would be better practice, other than
 > that the function will only accept predefined arguments.
 >
 > What are your views on implementing such a 'pattern' (if you will). Would
 > you even suggest such an implementation, or am I bound to get into trouble
 > with proposed pattern?
 >
 > Thank you in advance.
 >
 >
 
 It's better to pass parameters.  It makes your class reusable.
 
 What happens, for instance, if later you decide to store the data in the
 $_SESSION variable?  Or you need to change the name of the $_POST
 variable, i.e. due to a conflict?  Your existing code would be pretty
 worthless.
 
 A compromise would be to have a function which only extracts the data,
 but I don't like that.
 
 And you can send the variables - just like you do anything else, i.e.
 
 func($_POST['var'1]);
 
 
 
 --
 ==================
 Remove the "x" from my email address
 Jerry Stuckle
 JDS Computer Training Corp.
 jstucklex@attglobal.net
 ==================
 [Back to original message] |