1 package DBIx::Class::Serialize::Storable;
6 use Carp::Clan qw/^DBIx::Class/;
8 carp 'The Serialize::Storable component is now *DEPRECATED*. It has not '
9 .'been providing any useful functionality for quite a while, and in fact '
10 .'destroys prefetched results in its current implementation. Do not use!';
14 my ($self, $cloning) = @_;
15 my $to_serialize = { %$self };
17 # The source is either derived from _source_handle or is
18 # reattached in the thaw handler below
19 delete $to_serialize->{result_source};
21 # Dynamic values, easy to recalculate
22 delete $to_serialize->{$_} for qw/related_resultsets _inflated_column/;
24 return (Storable::nfreeze($to_serialize));
28 my ($self, $cloning, $serialized) = @_;
30 %$self = %{ Storable::thaw($serialized) };
32 # if the handle went missing somehow, reattach
33 $self->result_source($self->result_source_instance)
34 if !$self->_source_handle && $self->can('result_source_instance');
43 DBIx::Class::Serialize::Storable - hooks for Storable nfreeze/thaw
45 =head1 DEPRECATION NOTE
47 This component is now B<DEPRECATED>. It has not been providing any useful
48 functionality for quite a while, and in fact destroys prefetched results
49 in its current implementation. Do not use!
53 # in a table class definition
54 __PACKAGE__->load_components(qw/Serialize::Storable/);
56 # meanwhile, in a nearby piece of code
57 my $cd = $schema->resultset('CD')->find(12);
58 # if the cache uses Storable, this will work automatically
59 $cache->set($cd->ID, $cd);
63 This component adds hooks for Storable so that row objects can be
64 serialized. It assumes that your row object class (C<result_class>) is
65 the same as your table class, which is the normal situation.
69 The following hooks are defined for L<Storable> - see the
70 documentation for L<Storable/Hooks> for detailed information on these
73 =head2 STORABLE_freeze
75 The serializing hook, called on the object during serialization. It
76 can be inherited, or defined in the class itself, like any other
81 The deserializing hook called on the object during deserialization.
85 David Kamholz <dkamholz@cpan.org>
89 You may distribute this code under the same terms as Perl itself.