NAME
SPOPS::Manual - User Guide and Reference Manual for SPOPS
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:
- SPOPS::Manual::Intro
-
Introduction to SPOPS and a discussion of how all the pieces fit together.
- SPOPS::Manual::Object
-
Shows how you interact with SPOPS objects.
- SPOPS::Manual::Configuration
-
Describes how the configuration process works and what common configuration values are for the different implementations (e.g., SPOPS::DBI, SPOPS::LDAP, SPOPS::GDBM). Also contains information about security-specific configuration items.
- SPOPS::Manual::Relationships
-
Shows how to declaratively define different types of relationships between SPOPS objects.
- SPOPS::Manual::ObjectRules
-
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.
- SPOPS::Manual::CodeGeneration
-
Shows how the SPOPS classes are created from configuration and how you can modify the process for your own (hopefully benevolent) ends.
- SPOPS::Manual::Serialization
-
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.
- SPOPS::Manual::Datasource
-
Information about how SPOPS uses datasources and how you can make one or more datasources available to a number of objects at once.
- SPOPS::Manual::Security
-
Details about the SPOPS security system.
- SPOPS::Manual::Exceptions
-
Error handling in the SPOPS framework.
- SPOPS::Manual::ImportExport
-
Getting data in and out of datasources using SPOPS.
- SPOPS::Manual::Cookbook
-
Recipes for SPOPS usage.
MODULE LISTING
General object behavior
Initializing objects
This is the most common gateway to SPOPS, so be sure to see how to use the process()
method.
Error handling
Security
DBI items
- SPOPS::DBI
- SPOPS::SQLInterface
- SPOPS::ClassFactory::DBI
- SPOPS::DBI::TypeInfo
- SPOPS::DBI::InterBase
- SPOPS::DBI::MySQL
- SPOPS::DBI::Oracle
- SPOPS::DBI::Pg
- SPOPS::DBI::SQLite
- SPOPS::DBI::Sybase
- SPOPS::Key::DBI::HandleField
- SPOPS::Key::DBI::Identity
- SPOPS::Key::DBI::Pool
- SPOPS::Key::DBI::Sequence
- SPOPS::Tool::DBI::Datasource
- SPOPS::Tool::DBI::DiscoverField
- SPOPS::Tool::DBI::FindDefaults
- SPOPS::Tool::DBI::MaintainLinkedList
- SPOPS::Iterator::DBI
LDAP items
- SPOPS::LDAP
- SPOPS::LDAP::MultiDatasource
- SPOPS::ClassFactory::LDAP
- SPOPS::Tool::LDAP::Datasource
- SPOPS::Iterator::LDAP
Iterators (general)
Exporting/Importing
- SPOPS::Export
- SPOPS::Export::Object
- SPOPS::Export::Perl
- SPOPS::Export::SQL
- SPOPS::Export::XML
- SPOPS::Export::DBI::Data
- SPOPS::Import
- SPOPS::Import::Object
- SPOPS::Import::DBI::Table
- SPOPS::Import::DBI::Data
- SPOPS::Import::DBI::TableTransform
- SPOPS::Import::DBI::TableTransform::InterBase
- SPOPS::Import::DBI::TableTransform::MySQL
- SPOPS::Import::DBI::TableTransform::Oracle
- SPOPS::Import::DBI::TableTransform::Pg
- SPOPS::Import::DBI::TableTransform::SQLite
- SPOPS::Import::DBI::TableTransform::Sybase
Utilities that might be useful:
More information about how data are stored in an object
Class Factory
This handles the code generation for objects at initialization. It's useful for hacking SPOPS.
- SPOPS::ClassFactory
- SPOPS::ClassFactory::DefaultBehavior
- SPOPS::ClassFactory::DBI
- SPOPS::ClassFactory::LDAP
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.
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".
AUTHORS
Chris Winters <chris@cwinters.com>
The following people have offered patches, advice, development funds, etc. to SPOPS:
intes.net (http://www.intes.net/) has funded and supported SPOPS development from its inception.
Ray Zimmerman <rz10@cornell.edu> -- had offered tons of great design ideas and general help, pushing SPOPS into new domains. Too much to list here.
Simon Ilyushchenko <simonf@cshl.edu> -- real-world usage advice, work on improving the object linking semantics, lots of little items.
Christian Lemburg <lemburg@aixonix.de> -- contributed excellent documentation, too many good ideas to implement as well as design help with SPOPS::Secure::Hierarchy and the impetus for moving methods from the main SPOPS subclass to SPOPS::Utility.
MSN Marketing Service Nordwest, GmbH -- funded development of LDAP functionality, including SPOPS::LDAP, SPOPS::LDAP::MultiDatasource, and SPOPS::Iterator::LDAP, and SPOPS::Iterator::LDAP.
Rusty Foster <rusty@kuro5hin.org> -- was influential in the early (!) days of this library and offered up an implementation for 'limit' functionality in SPOPS::DBI
Rick Myers <rik@sumthin.nu> -- got rid of lots of warnings when running under
-w
and helped out with permission issues with SPOPS::GDBM.Harry Danilevsky <hdanilevsky@DeerfieldCapital.com> -- helped out with Sybase-specific issues, including inspiring SPOPS::Key::DBI::Identity.
Leon Brocard <acme@astray.com> -- prodded better docs of
SPOPS::Configure
(now deprecated, but folded into SPOPS::ClassFactory), specifically the linking semantics.Gert Thiel <thiel@baerkatalog.de> -- prodded better docs for multifield primary keys in SPOPS::DBI and for defining and using relationships.
David Boone <dave@bis.bc.ca> -- prodded the creation of SPOPS::Initialize.