On Tue, 13 Jul 2004 15:07:30 -0700, John P. Gibbons <[EMAIL PROTECTED]>
wrote:

I was reading this article: http://www.perl.com/pub/a/2001/03/embperl.html and of course this mailing list and have seen reference to people using the $req object to have one database connection.

On my sites I did not do it that way. I use Apache::DBI to handle the DBI connection issue and do a separate connects in my base.html and in all other referenced Embperl files/code. Apache::DBI of course makes sure we really only have one connection per httpd, as you all know.

I was wondering if there is any benefit or reason to use the request object method in my scenario? I'm looking at ways to optimize my code as it has grown dramatically and this has been in the back of my mind for awhile. I remember reading something that in order to give db access to an include embperl file with only subroutines you'd have to use that method. But I can't recall now. I was also thinking that there are cases when I call .epl files directly and do not want them wrapped in base.html. If I were to use the request object method then I would either be out of luck or would have to code around it somehow.

The request object can be useful to share variables across pages during _that_ request.

For big projects the recommended solution is to abstract the logic and
database operations into a module and let Embperl handle the interface
generation.

If you use EmbperlObject you can instantiate your class in your template
file, usually base.epr, and share the object across the other
pages/components _in that request_ using the request object. I think this
is a better approach than to use global class variables.

Unless you known what you are doing do not use your own namespace across
pages to be able to share variables. The same applies to CLEANUP. Embperl
handles the namespace and encapsulates each page to avoid leaks and
collisions.

I recommend you to read about EmbperlObject since it has many features to
improve your application design.

--
Luiz Fernando B. Ribeiro
Engenho Soluções para a Internet
+55 11 4485-0136

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to