On Thu, 2008-02-07 at 10:34 +0000, Mark Knoop wrote:

Hi Mark

Also I see that CGI::Application has its own params - am I right in thinking
these are completeley different to the query params? Is there any
relationship between the two? Should I just be using these for 'global'
values?

It also looks like I will be using the session plugin and the session object
also has its own params, some of which I would set with the
global/query/params that I am interested in.

Perhaps it's clearer if you think in terms of the context of these
various params():

o Query params carry temporary data from the web client to the web
server (i.e. from the user to your app)

o CGI::App params hold temporary data in your app for the duration of
its instantiation

o CGI::Session params hold permanent data (within reason) outside and
beyond the lifetime of one instantiation of your app. Hence they can be
used to pass data from one instantiation to the next, with access keyed
by session id. Hence you need to pass the session key from one
instantiation to the next. Hence our discussion of the various ways in
passing that session id (cookies, hidden form data, rewriting URLs)

So, these params() are not directly related to each other at all.

Ok. This is as I thought but it is very useful to have it confirmed in such a clear and concise manner.

I am wondering whether it is still useful to set up my own 'globals' object with a set of values that are required throughout an instantiation of my app, pulled from query params, session params, config and other external calls made when the request comes in. This allows me to have some extra control over how these values are allocated (eg using the session variables if present and obtaining them elsewhere if not, plus performing some specific tracing for the getting and setting of certain values) as well as allowing me to have a set of class modules which accept a single globals object and use whichever specific values are required without me having to have lots of different sets of parameters for each one. I'm kinda new to OO stuff so I would be interested to know if this is a common practice or if it is considered overkill. I have gone down this route and it is working for me but I'm not sure it is a good example of encapsulation, loose coupling etc

For example is there another tidy way to make all the params from the CGI::App, query and session available in external class methods? Apologies if I am being ludicrous due to my lack of understanding of this kind of thing but I only learn by asking dumb questions!

Cheers
Mark



#####  CGI::Application community mailing list  ################
##                                                            ##
##  To unsubscribe, or change your message delivery options,  ##
##  visit:  http://www.erlbaum.net/mailman/listinfo/cgiapp    ##
##                                                            ##
##  Web archive:   http://www.erlbaum.net/pipermail/cgiapp/   ##
##  Wiki:          http://cgiapp.erlbaum.net/                 ##
##                                                            ##
################################################################

Reply via email to