// Definition
$def = new ezcPersistentObjectDefinition();
$def->table = 'Persons';
$def->class = 'Person';
$def->idProperty = new ezcPersistentObjectIdProperty;
$def->idProperty->columnName = 'ID';
$def->idProperty->propertyName = 'id';
$def->idProperty->generator = new ezcPersistentGeneratorDefinition( 'ezcPersistentNativeGenerator' );
$def->properties['firstname'] = new ezcPersistentObjectProperty();
$def->properties['firstname']->columnName = 'Firstname';
$def->properties['firstname']->propertyName = 'firstname';
$def->properties['firstname']->propertyType = ezcPersistentObjectProperty::PHP_TYPE_STRING;
$def->properties['lastname'] = new ezcPersistentObjectProperty();
$def->properties['lastname']->columnName = 'Lastname';
$def->properties['lastname']->propertyName = 'lastname';
$def->properties['lastname']->propertyType = ezcPersistentObjectProperty::PHP_TYPE_STRING;
$def->properties['gender'] = new ezcPersistentObjectProperty();
$def->properties['gender']->columnName = 'Gender';
$def->properties['gender']->propertyName = 'gender';
$def->properties['gender']->propertyType = ezcPersistentObjectProperty::PHP_TYPE_INT;
return $def;
// Class
class Person
{
private $id = null;
public $firstname = null;
public $lastname = null;
public $gender = null;
public function __construct()
{
}
public function getState()
{
$result['id'] = $this->id;
$result['firstname'] = $this->firstname;
$result['lastname'] = $this->lastname;
$result['gender'] = $this->gender;
return $result;
}
public function setState
( array $properties )
{
foreach( $properties as $key => $value )
{
$this->$key = $value;
}
}
}
// In my php file
$mysql_params = 'mysql://' . $user . ':' . $password. '@' . $host . '/' . $database;
$db = ezcDbFactory::create( $mysql_params );
$session = new ezcPersistentSession(
$db,
new ezcPersistentCacheManager( new ezcPersistentCodeManager( 'definitions' ) )
);
// Works
$p = new Person();
$p->firstname = 'John';
$p->lastname = 'Doe';
$p->gender = 0;
$session->save( $p );
// Gives errors
$p = $session->load( 'Person', 1 );