[Dbix-class] Creating custom ResultSet Class.
Jess Robinson
castaway at desert-island.me.uk
Fri Apr 27 07:29:54 GMT 2007
On Fri, 27 Apr 2007, Oleg Pronin wrote:
> Could you please give more details :)
>
> 2007/4/27, Jess Robinson <castaway at desert-island.me.uk>:
>>
>>
>>
>>
>> On Thu, 26 Apr 2007, Oleg Pronin wrote:
>>
>> > Hello!
>> >
>> > I want to create custom resultset class that will allow caching (in
>> > memcached) functionality.
>> >
>> > For example,
>> > @users = $rs->search(undef, {order_by => 'rating', rows => 10, memcache
>> =>
>> > 60});
>> >
>> > This will give stored in memcached and automatically updated every 60
>> > seconds top10 users list.
>> >
>> > To do that i need every resultsource to use my resultset class.
>> > Cookbook says i've got to
>> > $source->resultset_class('My::ResultSet::Class');
>> > But i dont want to write it in every result source!
>> >
>> > Is there a good way to set my custom resultset to all registered result
>> > sources?
>> >
>>
>> Yes, its a perl feature called a "base class" ;)
>>
>> Jess
>>
package My::DBIC::Base;
use base 'DBIx::Class';
__PACKAGE__->load_components('Core');
__PACKAGE__->table('');
__PACKAGE__->resultset_class('My::ResultSet');
1;
...
package My::TableClass;
use base 'My::DBIC::Base';
__PACKAGE__->table('mytable');
1;
-- standard perl inheritance, nothing more exciting than that.
Jess
More information about the Dbix-class
mailing list