SPOPS
view release on metacpan or search on metacpan
=head2 Debugging
The previous (fragile, awkward) debugging system in SPOPS has been
replaced with L<Log::Log4perl> instead. Old calls to C<DEBUG>, C<_w>,
and C<_wm> will still work (for now) but they just use log4perl under
the covers.
Please see L<SPOPS::Manual::Configuration> under L<LOGGING> for
information on how to configure it.
=head1 NOTES
There is an issue using these modules with
L<Apache::StatINC|Apache::StatINC> along with the startup methodology
that calls the C<class_initialize> method of each class when a httpd
child is first initialized. If you modify a module without stopping
the webserver, the configuration variable in the class will not be
initialized and you will inevitably get errors.
We might be able to get around this by having most of the
configuration information as static class lexicals. But anything that
depends on any information from the CONFIG variable in request (which
is generally passed into the C<class_initialize> call for each SPOPS
implementation) will get hosed.
=head1 TO DO
B<Method object_description() should be more robust>
In particular, the 'url' and 'url_edit' keys of object_description()
should be more robust.
B<Objects composed of many records>
An idea: Make this data item framework much like the one
Brian Jepson discusses in Web Techniques:
http://www.webtechniques.com/archives/2000/03/jepson/
At least in terms of making each object unique (having an OID).
Each object could then be simply a collection of table name
plus ID name in the object table:
CREATE TABLE objects (
oid int not null,
table_name varchar(30) not null,
id int not null,
primary key( oid, table_name, id )
)
Then when you did:
my $oid = 56712;
my $user = User->fetch( $oid );
It would first get the object composition information:
oid table id
=== ===== ==
56712 user 1625
56712 user_prefs 8172
56712 user_history 9102
And create the User object with information from all
three tables.
Something to think about, anyway.
=head1 BUGS
None known.
=head1 COPYRIGHT
Copyright (c) 2001-2004 intes.net, inc; (c) 2003-2004-2004-2004 Chris
Winters. All rights reserved.
This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.
=head1 SEE ALSO
Find out more about SPOPS -- current versions, updates, rants, ideas
-- at:
http://spops.sourceforge.net/
CVS access and mailing lists (SPOPS is currently supported by the
openinteract-dev list) are at:
http://sourceforge.net/projects/spops/
Also see the 'Changes' file in the source distribution for comments
about how the module has evolved.
L<SPOPSx::Ginsu> - Generalized Inheritance Support for SPOPS + MySQL
-- store inherited data in separate tables.
=head1 AUTHORS
Chris Winters E<lt>chris@cwinters.comE<gt>
The following people have offered patches, advice, development funds,
etc. to SPOPS:
=over 4
=item *
Ray Zimmerman E<lt>rz10@cornell.eduE<gt> -- has offered tons of great design
ideas and general help, pushing SPOPS into new domains. Too much to
list here.
=item *
Simon Ilyushchenko E<lt>simonf@cshl.eduE<gt> -- real-world usage
advice, work on improving the object linking semantics, lots of little
items.
=item *
( run in 2.700 seconds using v1.01-cache-2.11-cpan-0bb4e1dffa6 )