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