=head1 NAME SPOPS::Manual - User Guide and Reference Manual for SPOPS =head1 DESCRIPTION This is the manual for SPOPS, Simple Perl Object Persistence with Security. SPOPS is an object persistence framework that allows you to serialize your objects in Perl to different datastores. It also allows you to protect individual objects with a flexible security scheme and flexibly register pre- and post- serialization handlers. And all this can be done without writing any code -- common serialization usage can be implemented with a configuration file that's processed by SPOPS to create a fully functional class at run-time. This manual provides an overview of the framework along with examples, directions, etc. If you need implementation-specific information, please see the documentation for the appropriate module. (All modules are listed below.) The manual is broken down into: =over 4 =item L Introduction to SPOPS and a discussion of how all the pieces fit together. =item L Shows how you interact with SPOPS objects. =item L Describes how the configuration process works and what common configuration values are for the different implementations (e.g., L, L, L). Also contains information about security-specific configuration items. =item L Shows how to declaratively define different types of relationships between SPOPS objects. =item L Lists the general behaviors that every SPOPS object has, and shows how you can use other pre- and post- serialization handlers as well as create your own. =item L Shows how the SPOPS classes are created from configuration and how you can modify the process for your own (hopefully benevolent) ends. =item L Describes how objects are saved, fetched and removed. Illustrates how SPOPS generates keys (if you ask nicely) and caches objects. Also describes how to create your own serialization class. =item L Information about how SPOPS uses datasources and how you can make one or more datasources available to a number of objects at once. =item L Details about the SPOPS security system. =item L Error handling in the SPOPS framework. =item L Getting data in and out of datasources using SPOPS. =item L Recipes for SPOPS usage. =back =head1 MODULE LISTING General object behavior =over 4 =item L =back Initializing objects This is the most common gateway to SPOPS, so be sure to see how to use the C method. =over 4 =item L =back Error handling =over 4 =item L =item L =item L =item L =back Security =over 4 =item L =item L =item L =back DBI items =over 4 =item L =item L =item L =item L =item L =item L =item L =item L =item L =item L =item L =item L =item L =item L =item L =item L =item L =item L =item L =back LDAP items =over 4 =item L =item L =item L =item L =item L =back Iterators (general) =over 4 =item L =item L =item L =item L =back Exporting/Importing =over 4 =item L =item L =item L =item L =item L =item L =item L =item L =item L =item L =item L =item L =item L =item L =item L =item L =item L =back Utilities that might be useful: =over 4 =item L =item L =item L =item L =item L =back More information about how data are stored in an object =over 4 =item L =item L =back Class Factory This handles the code generation for objects at initialization. It's useful for hacking SPOPS. =over 4 =item L =item L =item L =item L =back =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. =head1 COPYRIGHT Copyright (c) 2001-2004 Chris Winters. All rights reserved. Permission is granted to copy, distribute and::or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the file titled "COPYING-DOCS". =head1 AUTHORS Chris Winters Echris@cwinters.comE The following people have offered patches, advice, development funds, etc. to SPOPS: =over 4 =item * intes.net (http://www.intes.net/) has funded and supported SPOPS development from its inception. =item * Ray Zimmerman Erz10@cornell.eduE -- had offered tons of great design ideas and general help, pushing SPOPS into new domains. Too much to list here. =item * Simon Ilyushchenko Esimonf@cshl.eduE -- real-world usage advice, work on improving the object linking semantics, lots of little items. =item * Christian Lemburg Elemburg@aixonix.deE -- contributed excellent documentation, too many good ideas to implement as well as design help with L and the impetus for moving methods from the main SPOPS subclass to L. =item * MSN Marketing Service Nordwest, GmbH -- funded development of LDAP functionality, including L, L, and L, and L. =item * Rusty Foster Erusty@kuro5hin.orgE -- was influential in the early (!) days of this library and offered up an implementation for 'limit' functionality in L =item * Rick Myers Erik@sumthin.nuE -- got rid of lots of warnings when running under C<-w> and helped out with permission issues with L. =item * Harry Danilevsky Ehdanilevsky@DeerfieldCapital.comE -- helped out with Sybase-specific issues, including inspiring L. =item * Leon Brocard Eacme@astray.comE -- prodded better docs of C (now deprecated, but folded into L), specifically the linking semantics. =item * Gert Thiel Ethiel@baerkatalog.deE -- prodded better docs for multifield primary keys in L and for defining and using relationships. =item * David Boone Edave@bis.bc.caE -- prodded the creation of L. =back