ClearPress::model - a base class for the data-model of the ClearPress MVC family
$LastChangedRevision: 12 $
use strict; use warning; use base qw(ClearPress::model); __PACKAGE__->mk_accessors(__PACKAGE__->fields()); sub fields { return qw(...); }
my @aFields = $oModel->fields(); my @aFields = __PACKAGE__->fields();
my $sPrimaryKey = $oModel->fields();
my $sTableName = $oModel->table();
my $oInstance = ClearPress::model::subclass->new();
my $oUtil = ClearPress::model::subclass->util(); my $oUtil = $oInstance->util();
Invokes $self->read() if necessary. my $sFieldValue = $oModel->get($sFieldName);
my $arObjects = $oModel->gen_getarray('ClearPress::model::subclass', q(SELECT a,b,c FROM x,y WHERE x.d=? AND y.e=?), @bind_params);
my $arObjects = $oModel->gen_getall(); my $arObjects = $oModel->gen_getall('ClearPress::otherclass');
my $oObj = $self->gen_getobj($sClass);
my $arObjects = $oModel->gen_getfriends($sClass, $sCacheKey);
my $arObjects = $oModel->gen_getfriends($sClass, $sJoinTable, $sCacheKey);
__PACKAGE__->hasa('my::pkg'); __PACKAGE__->hasa(['my::pkg1', 'my::pkg2']); __PACKAGE__->hasa({method => 'my::fieldpkg'}); __PACKAGE__->hasa([{method_one => 'my::pkg1'}, {method_two => 'my::pkg2'});
__PACKAGE__->hasmany('my::pkg'); If my::pkg has a table of "package" then this creates a method "sub packages" in $self, yielding an arrayref of my::pkg objects related by the primary_key of $self. __PACKAGE__->hasmany(['my::pkg1', 'my::pkg2']); Define multiple relationships together. __PACKAGE__->hasmany({method => 'my::fieldpkg'}); Defines a method "sub methods" in $self yielding an arrayref of my::fieldpkg objects related by the primary_key of $self. __PACKAGE__->hasmany([{method_one => 'my::pkg1'}, {method_two => 'my::pkg2'}); Defines multiple relationships with overridden method names.
Define a 'users' method in this class which fetches users like so: SELECT u.id_user, u.foo, u.bar FROM user f, centre_user t WHERE t.id_this = ? # the primary_key for $self's class AND t.id_user = f.id_user # the primary_key for friend 'user' __PACKAGE__->has_many_through(['user|centre_user']);
$oModel->create();
$oModel->load();
$oModel->update();
$oModel->delete();
$oModel->save();
my $sZuluTime = $oModel->zdate();
my $sJSON = $oModel->as_json();
my $oXML = $oModel->as_xml();
Class::Accessor ClearPress::util English Carp
Roger Pettett, <rpettett@cpan.org>
Copyright (C) 2007 Roger Pettett
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.4 or, at your option, any later version of Perl 5 you may have available.
To install ClearPress, copy and paste the appropriate command in to your terminal.
cpanm
cpanm ClearPress
CPAN shell
perl -MCPAN -e shell install ClearPress
For more information on module installation, please visit the detailed CPAN module installation guide.