Back to YAPC 2006
Tuesday
intro to catalyst
They have that standalone server. That's pretty sweet.
their helper/plugin stuff is connected to their code-generator in a big way it looks.
All their config lives right in the code.
Arg, so much messy code. all the stuff done through $c gets very odd.
The models are hot too, using class::dbi and things like that
The whole mess of components are swappable. That seems like the neatest thing here.
Someone just showed how to build a weblog based on a file backend. It's cute for sure.
intro to MASON
I just want a better idea of what mason can do.
Looks like they support /open/post/$id/ virutal urls, page elements included in html automatically
Their built-in caching is quite capable, too.
embedded perl in htlm, duh. yuk.
You define argument lists for the page elements.
you get a $m object to interact with too, it has a big fancy API.
You also get $r, the apache request object
They also say it's never a good idea to use mason to handle everything.
You can use MasonX::WebApp to mock up some mvc behavior.
- the models are all your own
- the views are mason components
- the controllers are MasonX:WebApp subclasses
You can also filter the output of a component with another one, so you have one to write a form, and another to fill in the form-fields with user data that was gathered earlier
This is no good, man. The syntax is esoteric, and even libraries need to be warpped in mason components to be useful to other mason components. ;(
They're now showing off some neat modules they've coerced into Mason - why bother? it'd be easier to work them into something more reasonable.
Jifty!
commandline file builder
sugary code to define tables in models
standalone webserver also
Hm.. the default administration console has crud forms for everything.
The default nav is configurable.
the views are mason.
Holy shit, this is not... general purpose. It looks like you're stuck.
Hm. that admin mode i spoke of is kinda like majere for jifty, but it runs as a part of your app.
Thier validation happens at the model level - you specify validation subs for each attribute, and it feeds back to the form properly. That's... odd, but workable since you're not writing the form in any sense of the word, it's being auto-generated by the model schema.
instead of code generation a-la majere, jifty uses an object in @INC to auto-generate the empty classes. That's genius.
the view fragments are reusable, and they can be reused via ajax.
All the jifty components are editable on the web via clicks.
jifty dev mode handles all kinds of profilling for you.
jifty::web::session handles a pull of just the sesison data you need instead of all of it - this is critical for ajax.
Moose
moose uses MOP, which is an OO interface to the object system - you can add subs, query superclasses, etc.
moose allows you to write "real" models.
Handles attribute creation/validation.
Manages storage details - can this assist with automatic db-backing?
It inherits everything too, just like accessor defs
automated late-loading, and you can pass a sub into the accessor, so you say: the node has a child of type node, lateload it, get it with sub { node->new(shift)};
Moose also implements roles. Similar to ruby mix-ins, gives you peer-level functionality from multiple "Role" objects.
[an error occurred while processing this directive]