1
0
mirror of synced 2024-12-13 22:56:04 +03:00
doctrine2/tests/classes.php

903 lines
30 KiB
PHP
Raw Normal View History

<?php
2007-06-24 22:40:42 +04:00
class Entity extends Doctrine_Record
{
public function setUp()
{
$this->ownsOne('Email', array('local' => 'email_id'));
$this->hasMany('Phonenumber', array('local' => 'id', 'foreign' => 'entity_id'));
2007-06-24 22:40:42 +04:00
$this->ownsOne('Account', array('foreign' => 'entity_id'));
2007-05-27 22:56:54 +04:00
$this->hasMany('Entity', array('local' => 'entity1',
'refClass' => 'EntityReference',
'foreign' => 'entity2',
'equal' => true));
}
2007-06-24 22:40:42 +04:00
public function setTableDefinition()
{
2007-01-21 21:31:51 +03:00
$this->hasColumn('id', 'integer',20, 'autoincrement|primary');
$this->hasColumn('name', 'string',50);
$this->hasColumn('loginname', 'string',20, array('unique'));
$this->hasColumn('password', 'string',16);
$this->hasColumn('type', 'integer',1);
$this->hasColumn('created', 'integer',11);
$this->hasColumn('updated', 'integer',11);
$this->hasColumn('email_id', 'integer');
// $this->option('subclasses', array('User','Group'));
$this->setSubclasses(array("User" => array("type" => 0), "Group" => array("type" => 1)));
}
}
2007-06-24 22:40:42 +04:00
class FieldNameTest extends Doctrine_Record
{
public function setTableDefinition()
{
2007-01-21 21:31:51 +03:00
$this->hasColumn('someColumn', 'string', 200, array('default' => 'some string'));
$this->hasColumn('someEnum', 'enum', 4, array('default' => 'php', 'values' => array('php', 'java', 'python')));
$this->hasColumn('someArray', 'array', 100, array('default' => array()));
$this->hasColumn('someObject', 'object', 200, array('default' => new stdClass));
$this->hasColumn('someInt', 'integer', 20, array('default' => 11));
}
}
2007-06-24 22:40:42 +04:00
class EntityReference extends Doctrine_Record
{
public function setTableDefinition()
{
2007-01-21 21:31:51 +03:00
$this->hasColumn('entity1', 'integer', null, 'primary');
$this->hasColumn('entity2', 'integer', null, 'primary');
//$this->setPrimaryKey(array('entity1', 'entity2'));
}
}
2007-06-24 22:40:42 +04:00
class Account extends Doctrine_Record
{
public function setTableDefinition()
{
2007-01-21 21:31:51 +03:00
$this->hasColumn('entity_id', 'integer');
$this->hasColumn('amount', 'integer');
}
}
2007-06-24 22:40:42 +04:00
class EntityAddress extends Doctrine_Record
{
public function setTableDefinition()
{
$this->hasColumn('user_id', 'integer', null, array('primary' => true));
$this->hasColumn('address_id', 'integer', null, array('primary' => true));
}
}
2007-06-24 22:40:42 +04:00
class Address extends Doctrine_Record
{
public function setUp()
{
$this->hasMany('User', array('local' => 'user_id',
'foreign' => 'address_id',
'refClass' => 'EntityAddress'));
}
public function setTableDefinition() {
2007-06-24 22:40:42 +04:00
$this->hasColumn('address', 'string', 200);
}
}
// grouptable doesn't extend Doctrine_Table -> Doctrine_Connection
2007-01-21 21:31:51 +03:00
// won't initialize grouptable when Doctrine_Connection->getTable('Group') is called
class GroupTable { }
class Group extends Entity {
public function setUp() {
parent::setUp();
2007-01-21 21:31:51 +03:00
$this->hasMany('User', 'Groupuser.user_id');
// $this->option('inheritanceMap', array('type' => 1));
}
}
class Error extends Doctrine_Record {
public function setUp() {
2007-01-21 21:31:51 +03:00
$this->ownsMany('Description', 'Description.file_md5', 'file_md5');
}
public function setTableDefinition() {
2007-01-21 21:31:51 +03:00
$this->hasColumn('message', 'string',200);
$this->hasColumn('code', 'integer',11);
$this->hasColumn('file_md5', 'string',32, 'primary');
}
}
class Description extends Doctrine_Record {
public function setTableDefinition() {
2007-01-21 21:31:51 +03:00
$this->hasColumn('description', 'string',3000);
$this->hasColumn('file_md5', 'string',32);
}
}
class UserTable extends Doctrine_Table { }
2007-06-24 22:40:42 +04:00
class User extends Entity
{
public function setUp()
{
parent::setUp();
2007-06-24 22:40:42 +04:00
$this->hasMany('Address', array('local' => 'user_id',
'foreign' => 'address_id',
'refClass' => 'EntityAddress'));
2007-01-21 21:31:51 +03:00
$this->ownsMany('Album', 'Album.user_id');
$this->ownsMany('Book', 'Book.user_id');
$this->hasMany('Group', 'Groupuser.group_id');
// $this->option('inheritanceMap', array('type' => 0));
}
/** Custom validation */
2007-06-24 22:40:42 +04:00
public function validate()
{
// Allow only one name!
if ($this->name !== 'The Saint') {
2007-01-21 21:31:51 +03:00
$this->errorStack()->add('name', 'notTheSaint');
}
}
2007-06-24 22:40:42 +04:00
public function validateOnInsert()
{
if ($this->password !== 'Top Secret') {
2007-01-21 21:31:51 +03:00
$this->errorStack()->add('password', 'pwNotTopSecret');
}
}
2007-06-24 22:40:42 +04:00
public function validateOnUpdate()
{
if ($this->loginname !== 'Nobody') {
2007-01-21 21:31:51 +03:00
$this->errorStack()->add('loginname', 'notNobody');
}
}
}
2007-06-10 23:04:53 +04:00
class SelfRefTest extends Doctrine_Record
{
2007-06-24 22:40:42 +04:00
public function setTableDefinition()
{
2007-06-10 23:04:53 +04:00
$this->hasColumn('name', 'string', 50);
$this->hasColumn('created_by', 'integer');
}
public function setUp()
{
$this->hasOne('SelfRefTest as createdBy', array('local' => 'created_by'));
}
}
2007-06-24 22:40:42 +04:00
class Groupuser extends Doctrine_Record
{
public function setTableDefinition()
{
2007-01-21 21:31:51 +03:00
$this->hasColumn('added', 'integer');
$this->hasColumn('group_id', 'integer');
$this->hasColumn('user_id', 'integer');
}
}
2007-06-24 22:40:42 +04:00
class Phonenumber extends Doctrine_Record
{
public function setTableDefinition()
{
2007-01-21 21:31:51 +03:00
$this->hasColumn('phonenumber', 'string',20);
$this->hasColumn('entity_id', 'integer');
}
2007-06-24 22:40:42 +04:00
public function setUp()
{
$this->hasOne('Entity', array('local' => 'entity_id',
'foreign' => 'id',
'onDelete' => 'CASCADE'));
}
}
class Element extends Doctrine_Record {
public function setTableDefinition() {
2007-01-21 21:31:51 +03:00
$this->hasColumn('name', 'string', 100);
$this->hasColumn('parent_id', 'integer');
}
public function setUp() {
2007-01-21 21:31:51 +03:00
$this->hasMany('Element as Child', 'Child.parent_id');
$this->hasOne('Element as Parent', 'Element.parent_id');
}
}
2007-06-24 22:40:42 +04:00
class Email extends Doctrine_Record
{
public function setTableDefinition()
{
$this->hasColumn('address', 'string', 150, 'email|unique');
}
}
class Book extends Doctrine_Record {
public function setUp() {
2007-01-21 21:31:51 +03:00
$this->ownsMany('Author', 'Author.book_id');
}
public function setTableDefinition() {
2007-01-21 21:31:51 +03:00
$this->hasColumn('user_id', 'integer');
$this->hasColumn('name', 'string',20);
}
}
class Author extends Doctrine_Record {
public function setTableDefinition() {
2007-01-21 21:31:51 +03:00
$this->hasColumn('book_id', 'integer');
$this->hasColumn('name', 'string',20);
}
}
class Album extends Doctrine_Record {
public function setUp() {
2007-01-21 21:31:51 +03:00
$this->ownsMany('Song', 'Song.album_id');
}
public function setTableDefinition() {
2007-01-21 21:31:51 +03:00
$this->hasColumn('user_id', 'integer');
$this->hasColumn('name', 'string',20);
}
}
class Song extends Doctrine_Record {
public function setTableDefinition() {
2007-01-21 21:31:51 +03:00
$this->hasColumn('album_id', 'integer');
$this->hasColumn('genre', 'string',20);
$this->hasColumn('title', 'string',30);
}
}
class Task extends Doctrine_Record {
public function setUp() {
2007-01-21 21:31:51 +03:00
$this->hasMany('Resource as ResourceAlias', 'Assignment.resource_id');
$this->hasMany('Task as Subtask', 'Subtask.parent_id');
}
public function setTableDefinition() {
2007-01-21 21:31:51 +03:00
$this->hasColumn('name', 'string',100);
$this->hasColumn('parent_id', 'integer');
}
}
class Resource extends Doctrine_Record {
public function setUp() {
2007-01-21 21:31:51 +03:00
$this->hasMany('Task as TaskAlias', 'Assignment.task_id');
$this->hasMany('ResourceType as Type', 'ResourceReference.type_id');
}
public function setTableDefinition() {
2007-01-21 21:31:51 +03:00
$this->hasColumn('name', 'string',100);
}
}
class ResourceReference extends Doctrine_Record {
public function setTableDefinition() {
2007-01-21 21:31:51 +03:00
$this->hasColumn('type_id', 'integer');
$this->hasColumn('resource_id', 'integer');
}
}
class ResourceType extends Doctrine_Record {
public function setUp() {
2007-01-21 21:31:51 +03:00
$this->hasMany('Resource as ResourceAlias', 'ResourceReference.resource_id');
}
public function setTableDefinition() {
2007-01-21 21:31:51 +03:00
$this->hasColumn('type', 'string',100);
}
}
class Assignment extends Doctrine_Record {
public function setTableDefinition() {
2007-01-21 21:31:51 +03:00
$this->hasColumn('task_id', 'integer');
$this->hasColumn('resource_id', 'integer');
}
}
class Forum_Category extends Doctrine_Record {
public function setTableDefinition() {
2007-01-21 21:31:51 +03:00
$this->hasColumn('root_category_id', 'integer', 10);
$this->hasColumn('parent_category_id', 'integer', 10);
$this->hasColumn('name', 'string', 50);
$this->hasColumn('description', 'string', 99999);
}
public function setUp() {
2007-01-21 21:31:51 +03:00
$this->hasMany('Forum_Category as Subcategory', 'Subcategory.parent_category_id');
$this->hasOne('Forum_Category as Parent', 'Forum_Category.parent_category_id');
$this->hasOne('Forum_Category as Rootcategory', 'Forum_Category.root_category_id');
}
}
class Forum_Board extends Doctrine_Record {
public function setTableDefinition() {
2007-01-21 21:31:51 +03:00
$this->hasColumn('category_id', 'integer', 10);
$this->hasColumn('name', 'string', 100);
$this->hasColumn('description', 'string', 5000);
}
public function setUp() {
2007-01-21 21:31:51 +03:00
$this->hasOne('Forum_Category as Category', 'Forum_Board.category_id');
$this->ownsMany('Forum_Thread as Threads', 'Forum_Thread.board_id');
}
}
class Forum_Entry extends Doctrine_Record {
public function setTableDefinition() {
2007-01-21 21:31:51 +03:00
$this->hasColumn('author', 'string', 50);
$this->hasColumn('topic', 'string', 100);
$this->hasColumn('message', 'string', 99999);
$this->hasColumn('parent_entry_id', 'integer', 10);
$this->hasColumn('thread_id', 'integer', 10);
$this->hasColumn('date', 'integer', 10);
}
public function setUp() {
2007-01-21 21:31:51 +03:00
$this->hasOne('Forum_Entry as Parent', 'Forum_Entry.parent_entry_id');
$this->hasOne('Forum_Thread as Thread', 'Forum_Entry.thread_id');
}
}
class Forum_Thread extends Doctrine_Record {
public function setTableDefinition() {
2007-01-21 21:31:51 +03:00
$this->hasColumn('board_id', 'integer', 10);
$this->hasColumn('updated', 'integer', 10);
$this->hasColumn('closed', 'integer', 1);
}
public function setUp() {
2007-01-21 21:31:51 +03:00
$this->hasOne('Forum_Board as Board', 'Forum_Thread.board_id');
$this->ownsMany('Forum_Entry as Entries', 'Forum_Entry.thread_id');
}
}
class App extends Doctrine_Record {
public function setTableDefinition() {
2007-01-21 21:31:51 +03:00
$this->hasColumn('name', 'string', 32);
$this->hasColumn('user_id', 'integer', 11);
$this->hasColumn('app_category_id', 'integer', 11);
}
public function setUp() {
2007-01-21 21:31:51 +03:00
$this->hasOne('User', 'User.id');
$this->hasMany('App_Category as Category', 'App_Category.id');
}
}
class App_User extends Doctrine_Record {
public function setTableDefinition() {
2007-01-21 21:31:51 +03:00
$this->hasColumn('first_name', 'string', 32);
$this->hasColumn('last_name', 'string', 32);
$this->hasColumn('email', 'string', 128, 'email');
$this->hasColumn('username', 'string', 16, 'unique, nospace');
$this->hasColumn('password', 'string', 128, 'notblank');
$this->hasColumn('country', 'string', 2, 'country');
$this->hasColumn('zipcode', 'string', 9, 'nospace');
}
public function setUp() {
2007-01-21 21:31:51 +03:00
$this->hasMany('App', 'App.user_id');
}
}
class App_Category extends Doctrine_Record {
public function setTableDefinition() {
2007-01-21 21:31:51 +03:00
$this->hasColumn('name', 'string', 32);
$this->hasColumn('parent_id', 'integer');
}
public function setUp() {
2007-01-21 21:31:51 +03:00
$this->hasMany('App', 'App.app_category_id');
$this->hasMany('App_Category as Parent', 'App_Category.parent_id');
}
}
class ORM_TestEntry extends Doctrine_Record {
public function setTableDefinition() {
$this->setTableName('test_entries');
2007-01-21 21:31:51 +03:00
$this->hasColumn('id', 'integer', 11, 'autoincrement|primary');
$this->hasColumn('name', 'string', 255);
$this->hasColumn('stamp', 'timestamp');
$this->hasColumn('amount', 'float');
$this->hasColumn('itemID', 'integer');
}
public function setUp() {
2007-01-21 21:31:51 +03:00
$this->hasOne('ORM_TestItem', 'ORM_TestEntry.itemID');
}
}
class ORM_TestItem extends Doctrine_Record {
public function setTableDefinition() {
$this->setTableName('test_items');
2007-01-21 21:31:51 +03:00
$this->hasColumn('id', 'integer', 11, 'autoincrement|primary');
$this->hasColumn('name', 'string', 255);
}
public function setUp() {
2007-01-21 21:31:51 +03:00
$this->hasOne('ORM_TestEntry', 'ORM_TestEntry.itemID');
}
}
2007-06-18 22:05:16 +04:00
class ORM_AccessControl extends Doctrine_Record
{
public function setTableDefinition()
{
2007-01-21 21:31:51 +03:00
$this->hasColumn('name', 'string', 255);
}
2007-06-18 22:05:16 +04:00
public function setUp()
{
2007-01-21 21:31:51 +03:00
$this->hasMany('ORM_AccessGroup as accessGroups', 'ORM_AccessControlsGroups.accessGroupID');
}
}
2007-06-18 22:05:16 +04:00
class ORM_AccessGroup extends Doctrine_Record
{
public function setTableDefinition()
{
2007-01-21 21:31:51 +03:00
$this->hasColumn('name', 'string', 255);
}
2007-06-18 22:05:16 +04:00
public function setUp()
{
2007-01-21 21:31:51 +03:00
$this->hasMany('ORM_AccessControl as accessControls', 'ORM_AccessControlsGroups.accessControlID');
}
}
2007-06-18 22:05:16 +04:00
class ORM_AccessControlsGroups extends Doctrine_Record
{
public function setTableDefinition()
{
$this->hasColumn('accessControlID', 'integer', 11, array('primary' => true));
$this->hasColumn('accessGroupID', 'integer', 11, array('primary' => true));
}
}
2007-06-18 22:05:16 +04:00
class EnumTest extends Doctrine_Record
{
2007-06-30 01:27:41 +04:00
public function setTableDefinition() {
$this->hasColumn('status', 'enum', 11, array('values' => array('open', 'verified', 'closed')));
$this->hasColumn('text', 'string');
}
public function setUp() {
$this->hasMany('EnumTest2 as Enum2', array('local' => 'id', 'foreign' => 'enum_test_id'));
$this->hasMany('EnumTest3 as Enum3', array('local' => 'text', 'foreign' => 'text'));
2007-06-30 01:27:41 +04:00
}
}
class EnumTest2 extends Doctrine_Record
{
public function setTableDefinition() {
2007-01-21 21:31:51 +03:00
$this->hasColumn('status', 'enum', 11, array('values' => array('open', 'verified', 'closed')));
2007-06-30 01:27:41 +04:00
$this->hasColumn('enum_test_id', 'integer');
}
}
class EnumTest3 extends Doctrine_Record
{
public function setTableDefinition() {
$this->hasColumn('text', 'string', 10, array('primary' => true));
}
}
class FilterTest extends Doctrine_Record {
public function setTableDefinition() {
2007-01-21 21:31:51 +03:00
$this->hasColumn('name', 'string',100);
}
public function setUp() {
2007-01-21 21:31:51 +03:00
$this->ownsMany('FilterTest2 as filtered', 'FilterTest2.test1_id');
}
}
class FilterTest2 extends Doctrine_Record {
public function setTableDefinition() {
2007-01-21 21:31:51 +03:00
$this->hasColumn('name', 'string',100);
$this->hasColumn('test1_id', 'integer');
}
}
class CustomPK extends Doctrine_Record {
public function setTableDefinition() {
2007-01-21 21:31:51 +03:00
$this->hasColumn('uid', 'integer',11, 'autoincrement|primary');
$this->hasColumn('name', 'string',255);
}
}
class Log_Entry extends Doctrine_Record {
public function setTableDefinition() {
2007-01-21 21:31:51 +03:00
$this->hasColumn('stamp', 'timestamp');
$this->hasColumn('status_id', 'integer');
}
public function setUp() {
2007-01-21 21:31:51 +03:00
$this->hasOne('Log_Status', 'Log_Entry.status_id');
}
}
class CPK_Test extends Doctrine_Record {
public function setTableDefinition() {
2007-01-21 21:31:51 +03:00
$this->hasColumn('name', 'string', 255);
}
public function setUp() {
2007-01-21 21:31:51 +03:00
$this->hasMany('CPK_Test2 as Test', 'CPK_Association.test2_id');
}
}
class CPK_Test2 extends Doctrine_Record {
public function setTableDefinition() {
2007-01-21 21:31:51 +03:00
$this->hasColumn('name', 'string', 255);
}
public function setUp() {
2007-01-21 21:31:51 +03:00
$this->hasMany('CPK_Test as Test', 'CPK_Association.test1_id');
}
}
class CPK_Association extends Doctrine_Record {
public function setTableDefinition() {
2007-01-21 21:31:51 +03:00
$this->hasColumn('test1_id', 'integer', 11, 'primary');
$this->hasColumn('test2_id', 'integer', 11, 'primary');
}
}
class Log_Status extends Doctrine_Record {
public function setTableDefinition() {
2007-01-21 21:31:51 +03:00
$this->hasColumn('name', 'string', 255);
}
}
class ValidatorTest extends Doctrine_Record {
public function setTableDefinition() {
2007-01-21 21:31:51 +03:00
$this->hasColumn('mymixed', 'string', 100);
$this->hasColumn('mystring', 'string', 100, 'notnull|unique');
$this->hasColumn('myarray', 'array', 1000);
$this->hasColumn('myobject', 'object', 1000);
$this->hasColumn('myinteger', 'integer', 11);
$this->hasColumn('myrange', 'integer', 11, array('range' => array(4,123)));
$this->hasColumn('myregexp', 'string', 5, array('regexp' => '/^[0-9]+$/'));
2007-01-21 21:31:51 +03:00
$this->hasColumn('myemail', 'string', 100, 'email');
$this->hasColumn('myemail2', 'string', 100, 'email|notblank');
}
}
class DateTest extends Doctrine_Record {
public function setTableDefinition() {
2007-01-21 21:31:51 +03:00
$this->hasColumn('date', 'date', 20);
}
}
class GzipTest extends Doctrine_Record {
public function setTableDefinition() {
2007-01-21 21:31:51 +03:00
$this->hasColumn('gzip', 'gzip', 100000);
}
}
class Tag extends Doctrine_Record {
public function setUp() {
2007-01-21 21:31:51 +03:00
$this->hasMany('Photo', 'Phototag.photo_id');
}
public function setTableDefinition() {
2007-01-21 21:31:51 +03:00
$this->hasColumn('tag', 'string', 100);
}
}
class Photo extends Doctrine_Record {
public function setUp() {
2007-01-21 21:31:51 +03:00
$this->hasMany('Tag', 'Phototag.tag_id');
}
public function setTableDefinition() {
2007-01-21 21:31:51 +03:00
$this->hasColumn('name', 'string', 100);
}
}
class Phototag extends Doctrine_Record {
public function setTableDefinition() {
2007-01-21 21:31:51 +03:00
$this->hasColumn('photo_id', 'integer');
$this->hasColumn('tag_id', 'integer');
}
}
class BooleanTest extends Doctrine_Record {
public function setTableDefinition() {
$this->hasColumn('is_working', 'boolean');
$this->hasColumn('is_working_notnull', 'boolean', 1, array('default' => false, 'notnull' => true));
}
}
class Data_File extends Doctrine_Record {
public function setTableDefinition() {
2007-01-21 21:31:51 +03:00
$this->hasColumn('filename', 'string');
$this->hasColumn('file_owner_id', 'integer');
}
public function setUp() {
2007-01-21 21:31:51 +03:00
$this->hasOne('File_Owner', 'Data_File.file_owner_id');
}
}
class NotNullTest extends Doctrine_Record {
public function setTableDefinition() {
2007-01-21 21:31:51 +03:00
$this->hasColumn('name', 'string', 100, 'notnull');
$this->hasColumn('type', 'integer', 11);
}
}
class File_Owner extends Doctrine_Record {
public function setTableDefinition() {
2007-01-21 21:31:51 +03:00
$this->hasColumn('name', 'string', 255);
}
public function setUp() {
2007-01-21 21:31:51 +03:00
$this->hasOne('Data_File', 'Data_File.file_owner_id');
}
}
class MyUser extends Doctrine_Record {
public function setTableDefinition() {
2007-01-21 21:31:51 +03:00
$this->hasColumn('name', 'string');
}
public function setUp() {
2007-01-21 21:31:51 +03:00
$this->hasMany('MyOneThing', 'MyOneThing.user_id');
$this->hasMany('MyOtherThing', 'MyOtherThing.user_id');
}
}
class MyOneThing extends Doctrine_Record {
public function setTableDefinition() {
2007-01-21 21:31:51 +03:00
$this->hasColumn('name', 'string');
$this->hasColumn('user_id', 'integer');
}
public function setUp() {
2007-01-21 21:31:51 +03:00
$this->hasMany('MyUserOneThing', 'MyUserOneThing.one_thing_id');
}
}
class MyOtherThing extends Doctrine_Record {
public function setTableDefinition() {
2007-01-21 21:31:51 +03:00
$this->hasColumn('name', 'string');
$this->hasColumn('user_id', 'integer');
}
public function setUp() {
2007-01-21 21:31:51 +03:00
$this->hasMany('MyUserOtherThing', 'MyUserOtherThing.other_thing_id');
}
}
class MyUserOneThing extends Doctrine_Record {
public function setTableDefinition() {
2007-01-21 21:31:51 +03:00
$this->hasColumn('user_id', 'integer');
$this->hasColumn('one_thing_id', 'integer');
}
}
class MyUserOtherThing extends Doctrine_Record {
public function setTableDefinition() {
2007-01-21 21:31:51 +03:00
$this->hasColumn('user_id', 'integer');
$this->hasColumn('other_thing_id', 'integer');
}
}
class CategoryWithPosition extends Doctrine_Record {
public function setTableDefinition() {
2007-01-21 21:31:51 +03:00
$this->hasColumn('position', 'integer');
$this->hasColumn('name', 'string', 255);
}
public function setUp() {
2007-01-21 21:31:51 +03:00
$this->ownsMany('BoardWithPosition as Boards', 'BoardWithPosition.category_id');
}
}
class BoardWithPosition extends Doctrine_Record {
public function setTableDefinition() {
2007-01-21 21:31:51 +03:00
$this->hasColumn('position', 'integer');
$this->hasColumn('category_id', 'integer');
}
public function setUp() {
2007-01-21 21:31:51 +03:00
$this->hasOne('CategoryWithPosition as Category', 'BoardWithPosition.category_id');
}
}
class Package extends Doctrine_Record {
public function setTableDefinition() {
$this->hasColumn('description', 'string', 255);
}
public function setUp()
{
$this->ownsMany('PackageVersion as Version', 'PackageVersion.package_id');
}
}
class PackageVersion extends Doctrine_Record {
public function setTableDefinition() {
$this->hasColumn('package_id', 'integer');
$this->hasColumn('description', 'string', 255);
}
public function setUp()
{
$this->hasOne('Package', 'PackageVersion.package_id');
$this->hasMany('PackageVersionNotes as Note', 'PackageVersionNotes.package_version_id');
}
}
class PackageVersionNotes extends Doctrine_Record
{
public function setTableDefinition()
{
$this->hasColumn('package_version_id', 'integer');
$this->hasColumn('description', 'string', 255);
}
public function setUp()
{
$this->hasOne('PackageVersion', 'PackageVersionNotes.package_version_id');
}
}
2007-02-12 01:55:19 +03:00
class NestTest extends Doctrine_Record
{
public function setTableDefinition()
{
2007-02-12 01:55:19 +03:00
$this->hasColumn('name', 'string');
}
public function setUp()
{
$this->hasMany('NestTest as Parents', array('local' => 'child_id',
'refClass' => 'NestReference',
'foreign' => 'parent_id'));
$this->hasMany('NestTest as Children', array('local' => 'parent_id',
'refClass' => 'NestReference',
'foreign' => 'child_id'));
$this->hasMany('NestTest as Relatives', array('local' => 'child_id',
'refClass' => 'NestReference',
'foreign' => 'parent_id',
'equal' => true));
2007-02-12 01:55:19 +03:00
}
}
class NestReference extends Doctrine_Record
{
public function setTableDefinition()
{
2007-02-12 01:55:19 +03:00
$this->hasColumn('parent_id', 'integer', 4, 'primary');
$this->hasColumn('child_id', 'integer', 4, 'primary');
}
}
2007-03-28 17:31:54 +04:00
class ValidatorTest_Person extends Doctrine_Record {
public function setTableDefinition() {
$this->hasColumn('identifier', 'integer', 4, array('notblank', 'unique'));
2007-03-28 17:31:54 +04:00
$this->hasColumn('is_football_player', 'boolean');
}
public function setUp() {
$this->ownsOne('ValidatorTest_FootballPlayer', 'ValidatorTest_FootballPlayer.person_id');
}
}
class ValidatorTest_FootballPlayer extends Doctrine_Record {
public function setTableDefinition() {
2007-05-27 22:56:54 +04:00
$this->hasColumn('person_id', 'string', 255);
2007-03-28 17:31:54 +04:00
$this->hasColumn('team_name', 'string', 255);
$this->hasColumn('goals_count', 'integer', 4);
}
}
2007-05-28 21:02:18 +04:00
class QueryTest_Category extends Doctrine_Record
{
/**
* The depth of the category inside the tree.
* Non-persistent field.
*
* @var integer
*/
public $depth;
/**
* Table definition.
*/
public function setTableDefinition()
{
$this->hasColumn('rootCategoryId as rootCategoryId', 'integer', 4,
array('default' => 0));
$this->hasColumn('parentCategoryId as parentCategoryId', 'integer', 4,
array('notnull', 'default' => 0));
$this->hasColumn('name as name', 'string', 50,
array('notnull', 'unique'));
$this->hasColumn('position as position', 'integer', 4,
array('default' => 0, 'notnull'));
}
/**
* Relations definition.
*/
public function setUp()
{
2007-06-05 22:38:00 +04:00
$this->ownsMany('QueryTest_Category as subCategories', 'subCategories.parentCategoryId');
$this->hasOne('QueryTest_Category as rootCategory', 'QueryTest_Category.rootCategoryId');
2007-05-28 21:02:18 +04:00
$this->ownsMany('QueryTest_Board as boards', 'QueryTest_Board.categoryId');
}
}
class QueryTest_Board extends Doctrine_Record
{
/**
* Initializes the table definition.
*/
public function setTableDefinition()
{
$this->hasColumn('categoryId as categoryId', 'integer', 4,
array('notnull'));
$this->hasColumn('name as name', 'string', 100,
array('notnull', 'unique'));
$this->hasColumn('lastEntryId as lastEntryId', 'integer', 4,
array('default' => 0, 'notnull'));
$this->hasColumn('position as position', 'integer', 4,
array('default' => 0, 'notnull'));
}
/**
* Initializes the relations.
*/
public function setUp()
{
$this->hasOne('QueryTest_Category as category', 'QueryTest_Board.categoryId');
$this->ownsOne('QueryTest_Entry as lastEntry', 'QueryTest_Board.lastEntryId');
}
}
class QueryTest_Entry extends Doctrine_Record
{
/**
* Table structure.
*/
public function setTableDefinition()
{
$this->hasColumn('authorId', 'integer', 4,
2007-05-28 21:02:18 +04:00
array('notnull'));
$this->hasColumn('date', 'integer', 4,
2007-05-28 21:02:18 +04:00
array('notnull'));
}
/**
* Runtime definition of the relationships to other entities.
*/
public function setUp()
{
$this->hasOne('QueryTest_User as author', 'QueryTest_Entry.authorId');
}
}
class QueryTest_User extends Doctrine_Record
{
public function setTableDefinition()
{
$this->hasColumn('username as username', 'string', 50,
array('notnull'));
$this->hasColumn('visibleRankId', 'integer', 4);
}
/**
* Runtime definition of the relationships to other entities.
*/
public function setUp()
{
$this->hasOne('QueryTest_Rank as visibleRank', 'QueryTest_User.visibleRankId');
$this->hasMany('QueryTest_Rank as ranks', 'QueryTest_UserRank.rankId');
}
}
class QueryTest_UserRank extends Doctrine_Record
{
public function setTableDefinition()
{
$this->hasColumn('rankId', 'integer', 4, array('primary'));
$this->hasColumn('userId', 'integer', 4, array('primary'));
}
}
class QueryTest_Rank extends Doctrine_Record
{
/**
* Initializes the table definition.
*/
public function setTableDefinition()
{
$this->hasColumn('title as title', 'string', 100,
array('notnull'));
$this->hasColumn('color as color', 'string', 20,
array('notnull', 'regexp' => '/^[a-zA-Z\-]{3,}|#[0-9a-fA-F]{6}$/D'));
$this->hasColumn('icon as icon', 'string', 50,
array('notnull', 'default' => ' ', 'regexp' => '/^[a-zA-Z0-9_\-]+\.(jpg|gif|png)$/D'));
2007-05-28 21:02:18 +04:00
}
public function setUp()
{
$this->hasMany('QueryTest_User as users', 'QueryTest_UserRank.userId');
}
2007-05-28 21:02:18 +04:00
}
class ValidatorTest_ClientModel extends Doctrine_Record {
public function setTableDefinition() {
$this->hasColumn('id', 'integer', 4, array('notnull' => true,
'primary' => true,
'autoincrement' => true,
'unsigned' => true));
$this->hasColumn('short_name', 'string', 32, array('notnull' => true, 'notblank', 'unique' => true));
}
public function setUp() {
$this->hasMany("ValidatorTest_AddressModel", array('local' => 'client_id', 'foreign' => 'address_id', 'refClass' => 'ValidatorTest_ClientToAddressModel'));
}
}
class ValidatorTest_ClientToAddressModel extends Doctrine_Record {
public function setTableDefinition() {
$this->hasColumn("client_id", "integer", 11, array('primary' => true));
$this->hasColumn("address_id", "integer", 11, array('primary' => true));
}
public function construct(){
}
public function setUp() {
}
}
class ValidatorTest_AddressModel extends Doctrine_Record {
public function setTableDefinition() {
$this->hasColumn("id", "integer", 11, array('autoincrement' => true,
'primary' => true
));
$this->hasColumn('address1', 'string', 255, array('notnull' => true, 'notblank'));
$this->hasColumn('address2', 'string', 255, array('notnull' => true));
$this->hasColumn('city', 'string', 255, array('notnull' => true, 'notblank'));
$this->hasColumn('state', 'string', 10, array('notnull' => true, 'notblank', 'usstate'));
$this->hasColumn('zip', 'string', 15, array('notnull' => true, 'notblank', 'regexp' => '/^[0-9-]*$/'));
}
public function setUp() {
$this->hasMany('ValidatorTest_ClientModel', array('local' => 'address_id', 'foreign' => 'client_id', 'refClass' => 'ValidatorTest_ClientToAddressModel'));
}
}
2007-07-11 19:55:52 +04:00
class NestedSetTest_SingleRootNode extends Doctrine_Record {
public function setTableDefinition() {
$this->actAs('NestedSet');
2007-07-11 19:55:52 +04:00
$this->hasColumn('name', 'string', 50, array('notnull'));
}
}
?>