// models/Entity.php
class Entity extends Doctrine_Record
{
public function setTableDefinition()
{
$this->hasColumn('name', 'string', 30);
$this->hasColumn('username', 'string', 20);
$this->hasColumn('password', 'string', 16);
$this->hasColumn('created_at', 'timestamp');
$this->hasColumn('update_at', 'timestamp');
}
}
Теперь создаем модель User, расширяющую (наследующую) Entity ...
// models/User.php
class User extends Entity
{ }
И тоже самое для класса Group ...
// models/Group.php
class Group extends Entity
{ }
Вот так это будет выглядеть в формате YAML:
---
# schema.yml
# ...
Entity:
columns:
name: string(30)
username: string(20)
password: string(16)
created_at: timestamp
updated_at: timestamp
User:
inheritance:
extends: Entity
type: simple
Group:
inheritance:
extends: Entity
type: simple
Если посмотреть на SQL, который генерируют эти модели ...
// test.php
// ...
$sql = Doctrine_Core::generateSqlFromArray(array('Entity', 'User', 'Group'));
echo $sql[0];
... то в обоих случаях будет следующее:
CREATE TABLE entity (id BIGINT AUTO_INCREMENT,
username VARCHAR(20),
password VARCHAR(16),
created_at DATETIME,
updated_at DATETIME,
name VARCHAR(30),
PRIMARY KEY(id)) ENGINE = INNODB
Комментариев нет:
Отправить комментарий