[cgiapp] code reuse.
James.Q.L
shijialeee at yahoo.com
Mon Mar 17 10:05:12 EDT 2008
--- Mark Fuller <azfuller at gmail.com> wrote:
> On Sun, Mar 16, 2008 at 4:31 PM, James.Q.L <shijialeee at yahoo.com> wrote:
> >
> >I store ONLY $uuid in param because i need it in other controller. i
> am passing $dbh to
> >Company:: modules because these modules are not inherited from C::A.
>
> The example your provided showed them being passed as parameters to
> $self->methods() which have access to the param method..
>
> If you're passing them to true subroutines (not methods) there's no
> way around that except to begin refactoring your code into objects.
> That's the problem I had a few years ago and found myself bundling
> things into one hash which could be passed around (a lot like an
> object). Or, creating modules to hold the data belonging to that
> namespace within that namespace (a lot like an object). And then,
> voila!, a module with a hash (an object).
i would like to an example of this.
>
> > i like to define $uuid,
>
> I might be missing the point, but what's wrong with storing $uuid in
> Company::Util as an "our" variable and accessing it from anywhere as
> $Company::Util::uuid ?
>
correct me if i am wrong. that won't work under mod_perl. because our $uuid is a global package
variable and shared by all instances.
> I'm not sure that's the right thing to do. But, it's what you're
> asking for. If you're going through what I did, once you do that I bet
> you proceed to an object. Or, making your subroutines methods.
>
> Maybe you should post a different example? It sounds like the one you
> posted didn't represent the problem you're having?
>
what i want is to setup $uuid and $dbh for the Company:: modules so that i can do
use base 'CGI::Application';
use Company::CAP::EventLogging; # a plugin for CGI::Application
sub cgiapp_init {
# init Company::Base
$company = Company::Base->new();
$company->dbh( MyApp::DB->dbh );
$company->user($ENV{REMOTE_USER});
# then somehow all my Company:: can start to use the $dbh etc..
}
sub method {
shift->elog("log this");
}
this is probably more of a OO design and mod_perl related question.. probably i better seek help
from perlmonk or mod_perl list..
> Mark
thanks,
James.
____________________________________________________________________________________
Be a better friend, newshound, and
know-it-all with Yahoo! Mobile. Try it now. http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ
More information about the cgiapp
mailing list