Hi,
sorry for any inconvenience. Now i've solved my problem by setting:
private $_id;
to:
public $id;
:)
> Hi,
>
> first of all, my problem:
>
> Exceptioninformation:
> Message: The object of type Yela_Persistence_Users is not persistent.
> Stack trace:
> #0
> var/www/YelaCMS/library/ezc/PersistentObject/src/persistent_session.php(127):
> ezcPersistentLoadHandler->refresh(Object(Yela_Persistence_Users))
>
>
>
> How do i initialize my persistent session? (within Zend Framework
> bootstrapping class) (/var/www/YelaCMS/application/Bootstrap.php):
>
> /**
> * Initialize persistent session.
> *
> * @return ezcPersistentSession
> */
> protected function _initEzcSession()
> {
> $this->bootstrap(array('appSession', 'database'));
> $db = $this->getResource('database');
>
> $session = new ezcPersistentSession(
> $db,
> new ezcPersistentCacheManager(
> new ezcPersistentCodeManager( APPLICATION_PATH . DS .
> 'sources' . DS .
> 'database' . DS .
> 'persistence') )
> );
>
> ezcPersistentSessionInstance::set( $session );
>
> return $session;
> }
>
>
>
> Current definition file looks like this
> (/var/www/YelaCMS/application/sources/database/persistence/yela_persistence_users.php):
> << this filename should be "yela_users.php" but it won't work for some
> reasons :) i guess this is another problem.
>
> $def = new ezcPersistentObjectDefinition();
> $def->table = 'yela_users';
> $def->class = 'Yela_Persistence_Users';
>
> $def->properties['alias'] = new ezcPersistentObjectProperty();
> $def->properties['alias']->columnName = 'alias';
> $def->properties['alias']->propertyName = 'alias';
> $def->properties['alias']->propertyType =
> ezcPersistentObjectProperty::PHP_TYPE_STRING;
>
>
> $def->properties['date_login_last'] = new
> ezcPersistentObjectProperty();
> $def->properties['date_login_last']->columnName = 'date_login_last';
> $def->properties['date_login_last']->propertyName = 'date_login_last';
> $def->properties['date_login_last']->propertyType =
> ezcPersistentObjectProperty::PHP_TYPE_INT;
>
>
> $def->properties['date_register'] = new
> ezcPersistentObjectProperty();
> $def->properties['date_register']->columnName = 'date_register';
> $def->properties['date_register']->propertyName = 'date_register';
> $def->properties['date_register']->propertyType =
> ezcPersistentObjectProperty::PHP_TYPE_INT;
>
>
> $def->idProperty = new ezcPersistentObjectIdProperty();
> $def->idProperty->columnName = 'group_id';
> $def->idProperty->propertyName = 'group_id';
> $def->idProperty->generator = new ezcPersistentGeneratorDefinition(
> 'ezcPersistentManualGenerator' );
> $def->idProperty->propertyType =
> ezcPersistentObjectProperty::PHP_TYPE_STRING;
>
>
> $def->properties['hash'] = new ezcPersistentObjectProperty();
> $def->properties['hash']->columnName = 'hash';
> $def->properties['hash']->propertyName = 'hash';
> $def->properties['hash']->propertyType =
> ezcPersistentObjectProperty::PHP_TYPE_STRING;
>
>
> $def->idProperty = new ezcPersistentObjectIdProperty();
> $def->idProperty->columnName = 'id';
> $def->idProperty->propertyName = 'id';
> $def->idProperty->generator = new ezcPersistentGeneratorDefinition(
> 'ezcPersistentSequenceGenerator' );
>
>
> $def->properties['login'] = new ezcPersistentObjectProperty();
> $def->properties['login']->columnName = 'login';
> $def->properties['login']->propertyName = 'login';
> $def->properties['login']->propertyType =
> ezcPersistentObjectProperty::PHP_TYPE_STRING;
>
>
> $def->properties['mail'] = new ezcPersistentObjectProperty();
> $def->properties['mail']->columnName = 'mail';
> $def->properties['mail']->propertyName = 'mail';
> $def->properties['mail']->propertyType =
> ezcPersistentObjectProperty::PHP_TYPE_STRING;
>
>
> $def->properties['password'] = new
> ezcPersistentObjectProperty();
> $def->properties['password']->columnName = 'password';
> $def->properties['password']->propertyName = 'password';
> $def->properties['password']->propertyType =
> ezcPersistentObjectProperty::PHP_TYPE_STRING;
>
>
> $def->properties['status'] = new
> ezcPersistentObjectProperty();
> $def->properties['status']->columnName = 'status';
> $def->properties['status']->propertyName = 'status';
> $def->properties['status']->propertyType =
> ezcPersistentObjectProperty::PHP_TYPE_INT;
>
> return $def;
>
>
>
> The persistent object class is the following
> (/var/www/YelaCMS/library/Yela/Persistence/Users.php):
>
> class Yela_Persistence_Users
> {
> private $_id = null;
> public $group_id = null;
> public $alias = null;
> public $date_register = null;
> public $date_login_last = null;
> public $login = null;
> public $password = null;
> public $mail = null;
> public $hash = null;
> public $status = 0;
>
> public function getState()
> {
> $result = array();
> $result['id'] = $this->_id;
> $result['group_id'] = $this->group_id;
> $result['alias'] = $this->alias;
> $result['date_register'] = $this->date_register;
> $result['date_login_last'] = $this->date_login_last;
> $result['login'] = $this->login;
> $result['password'] = $this->mail;
> $result['hash'] = $this->hash;
> $result['status'] = $this->status;
>
> return $result;
> }
>
> public function setState( array $properties )
> {
> foreach( $properties as $key => $value )
> {
> $this->$key = $value;
> }
> }
> }
>
>
>
> The next code will output a dumped Yela_Persistence_Users object with
> primary key 3 from database:
>
> $session = ezcPersistentSessionInstance::get();
> $user = $session->load('Yela_Persistence_Users', 3);
> var_dump($user->getState());
>
>
>
>
> And now, instead of calling $user->getState() i tried to delete the
> existing object with:
>
> $session->delete($user);
>
>
>
> The described exception will be thrown at this position. Maybe someone
> can help me.
>
> vg René
--
Components mailing list
[email protected]
http://lists.ez.no/mailman/listinfo/components