Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Oct 14th, 2009  |  syntax: PHP  |  size: 2.16 KB  |  hits: 190  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
This paste has a previous version, view the difference. Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. // Definition
  2.  
  3. $def = new ezcPersistentObjectDefinition();
  4. $def->table = 'Persons';
  5. $def->class = 'Person';
  6.  
  7. $def->idProperty = new ezcPersistentObjectIdProperty;
  8. $def->idProperty->columnName = 'ID';
  9. $def->idProperty->propertyName = 'id';
  10. $def->idProperty->generator = new ezcPersistentGeneratorDefinition( 'ezcPersistentNativeGenerator' );
  11.  
  12. $def->properties['firstname'] = new ezcPersistentObjectProperty();
  13. $def->properties['firstname']->columnName = 'Firstname';
  14. $def->properties['firstname']->propertyName = 'firstname';
  15. $def->properties['firstname']->propertyType = ezcPersistentObjectProperty::PHP_TYPE_STRING;
  16.  
  17. $def->properties['lastname'] = new ezcPersistentObjectProperty();
  18. $def->properties['lastname']->columnName = 'Lastname';
  19. $def->properties['lastname']->propertyName = 'lastname';
  20. $def->properties['lastname']->propertyType = ezcPersistentObjectProperty::PHP_TYPE_STRING;
  21.  
  22. $def->properties['gender'] = new ezcPersistentObjectProperty();
  23. $def->properties['gender']->columnName = 'Gender';
  24. $def->properties['gender']->propertyName = 'gender';
  25. $def->properties['gender']->propertyType = ezcPersistentObjectProperty::PHP_TYPE_INT;
  26.  
  27. return $def;
  28.  
  29. // Class
  30.  
  31. class Person
  32. {
  33.         private $id = null;
  34.        
  35.         public $firstname = null;
  36.         public $lastname = null;
  37.         public $gender = null;
  38.        
  39.         public function __construct()
  40.         {
  41.  
  42.         }
  43.        
  44.        
  45.         public function getState()
  46.         {
  47.                 $result = array();
  48.                 $result['id'] = $this->id;
  49.                 $result['firstname'] = $this->firstname;
  50.                 $result['lastname'] = $this->lastname;
  51.                 $result['gender'] = $this->gender;
  52.                 return $result;
  53.         }
  54.        
  55.         public function setState( array $properties )
  56.         {
  57.                 foreach( $properties as $key => $value )
  58.                 {
  59.                         $this->$key = $value;
  60.                 }
  61.         }
  62.        
  63. }
  64.  
  65. // In my php file
  66.  
  67. $mysql_params = 'mysql://' . $user . ':' . $password. '@' . $host . '/' . $database;
  68. $db = ezcDbFactory::create( $mysql_params );
  69.  
  70. $session = new ezcPersistentSession(
  71.         $db,
  72.         new ezcPersistentCacheManager( new ezcPersistentCodeManager( 'definitions' ) )
  73. );
  74.  
  75. // Works
  76. $p = new Person();
  77. $p->firstname = 'John';
  78. $p->lastname = 'Doe';
  79. $p->gender = 0;
  80. $session->save( $p );
  81.  
  82. // Gives errors
  83. $p = $session->load( 'Person', 1 );