[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: design patters with mod_perl



On Sep 13, 2006, at 9:28 AM, Frank Wiles wrote:

  What I typically recommend to people is that they use a template
  engine like Template-Toolkit.org.  You simply pass it a Perl data
  structure and then you have all of the same transformation
  possibilities as XSLT ( at least as I understand it ).  And if you
  ever need the data as XML, you simply create a template for
  that ( or pass a special option to your handlers to return XML,
  etc. ).

I agree with everything said so far
	Perl Data Structures
	Templating Engines
only toss into XML if you really want to. otherwise why bother with 2x the work?

I go a step further...

	All of my packages return Perl data structures
	The structures are then tossed into an *abstract* template class
That abstract class wraps several templating engines , and will output to any of them on the fly. This way i can use Petal and HTML:: templates with the same app. I just pass a different render flag or set a variable/constant. If you did that, you could just wrap something that will parse the perl structure into XML (or write a template to do it in your langauge of choice )

If you're wondering why I'm wrapping in an abstract class, here's the top 5 reasons
	It makes me less 'locked into' a templating engine
I can trivially switch engines on some pages where there are performance concerns ( Petal was killing me on a specific page render... but HTML::Template redid it in a fraction of time )
	It's less code to change when I need to switch templating engines
	It's less code to change when I want to switch templating engines
	I've already switched templating engines before, it wasn't fun.

All of the 'web frameworks' do it to offer users better choice. I do it to keep my options open.


Mail converted by mhonarc 2.6.15
This archive provided courtesy of JSW4.NET, Internet Hosting Services for Small Business.