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
Components@lists.ez.no
http://lists.ez.no/mailman/listinfo/components

Reply via email to