Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Maypole::Model::Base(3User Contributed Perl DocumentatiMaypole::Model::Base(3)

NAME
       Maypole::Model::Base - Base class for model classes

DESCRIPTION
       This is the base	class for Maypole data models. This is an abstract
       class that defines the interface, and can't be used directly.

   process
       This is the engine of this module. Given	the request object, it
       populates all the relevant variables and	calls the requested action.

       Anyone subclassing this for a different database	abstraction mechanism
       needs to	provide	the following methods:

   setup_database
	   $model->setup_database($config, $namespace, @data)

       Uses the	user-defined data in @data to specify a	database- for example,
       by passing in a DSN. The	model class should open	the database, and
       create a	class for each table in	the database. These classes will then
       be "adopt"ed. It	should also populate "$config->tables" and
       "$config->classes" with the names of the	classes	and tables
       respectively. The classes should	be placed under	the specified
       namespace. For instance,	"beer" should be mapped	to the class
       "BeerDB::Beer".

   class_of
	   $model->class_of($r,	$table)

       This maps between a table name and its associated class.

   fetch_objects
       This class method is passed a request object and	is expected to return
       an object of the	appropriate table class	from information stored	in the
       request object.

   adopt
       This class method is passed the name of a model class that represensts
       a table and allows the master model class to do any set-up required.

   columns
       This is a list of all the columns in a table. You may also override see
       also "display_columns"

   table
       This is the name	of the table.

   Actions
       do_edit
	   If there is an object in "$r->objects", then	it should be edited
	   with	the parameters in "$r->params";	otherwise, a new object	should
	   be created with those parameters, and put back into "$r->objects".
	   The template	should be changed to "view", or	"edit" if there	were
	   any errors. A hash of errors	will be	passed to the template.

       list
	   The "list" method should fill "$r->objects" with all	of the objects
	   in the class. You may want to page this using "Data::Page" or
	   similar.

       edit
	   Empty Action.

       view
	   Empty Action.

       index
	   Empty Action, calls list if provided	with a table.

       Also, see the exported commands in "Maypole::Model::CDBI".

Other overrides
       Additionally, individual	derived	model classes may want to override the
       following methods:

   display_columns
       Returns a list of columns to display in the model. By default returns
       all columns in alphabetical order. Override this	in base	classes	to
       change ordering,	or elect not to	show columns.

   list_columns
       Same as display_columns,	only for listings. Defaults to display_columns

   column_names
       Return a	hash mapping column names with human-readable equivalents.

   is_public
       should return true if a certain action is supported, or false
       otherwise.  Defaults to checking	if the sub has the ":Exported"
       attribute.

   add_model_superclass
       Adds model as superclass	to model classes (if necessary)

   method_attrs
       Returns the list	of attributes defined for a method. Maypole itself
       only defines the	"Exported" attribute.

   related
       This can	go either in the master	model class or in the individual
       classes,	and returns a list of has-many accessors. A brewery has	many
       beers, so "BeerDB::Brewery" needs to return "beers".

SEE ALSO
       Maypole,	Maypole::Model::CDBI.

AUTHOR
       Maypole is currently maintained by Aaron	Trevena.

AUTHOR EMERITUS
       Simon Cozens, "simon#cpan.org"

       Simon Flack maintained Maypole from 2.05	to 2.09

       Sebastian Riedel, "sri#oook.de" maintained Maypole from 1.99_01 to 2.04

LICENSE
       You may distribute this code under the same terms as Perl itself.

perl v5.32.0			  2008-04-17	       Maypole::Model::Base(3)

NAME | DESCRIPTION | Other overrides | SEE ALSO | AUTHOR | AUTHOR EMERITUS | LICENSE

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Maypole::Model::Base&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help