| auteur : is_null |
Cette bibliothèque a besoin d'eZ Components pour fonctionner. Particulièrement le composant Database, qui permet l'abstraction de bases de données.
Sont actuellement supportés :
- SQLite ;
- Oracle ;
- PostgrSQL ;
- MySQL.
|
lien : Détails sur l'installation
|
| auteur : is_null |
Il faut générer un schema de la base de données avec le composant DatabaseSchema.
<?php
$ schema = ezcDbSchema: : createFromFile( ' xml ' , ' schema.xml ' );
$ db = ezcDbFactory: : create( ' mysql://user:password@host/database ' );
$ schema = ezcDbSchema: : createFromDb( $ db );
$schema ->writeToFile ( ' array ' , ' schema.php ' );
$schema ->writeToDb ( $ db );
?>
|
La bibliothèque utilisera une définition des objets persistants pour fonctionner.
|
lien : http://ezcomponents.org/docs/api/latest/introduction_DatabaseSchema.html
|
| auteur : is_null |
Il suffit d'ajouter les méthodes getState() et setState().
Par exemple : | <?php
class Personne
{
public $ nom = null ;
public $ id = null ;
public function getState()
{
return array (
' id ' = > $this ->id ,
' nom ' = > $this ->nom ,
);
}
public function setState( array $ status )
{
$this ->id = $status ->id ;
$this ->nom = $status ->nom ;
}
}
?>
|
Voici à quoi ressemblerait la définition de sa persistance : | <?php
$def = new ezcPersistentObjectDefinition();
$def ->table = " persons " ;
$def ->class = " Personne " ;
$def ->idProperty = new ezcPersistentObjectIdProperty;
$def ->idProperty ->columnName = ' id ' ;
$def ->idProperty ->propertyName = ' id ' ;
$def ->idProperty ->generator = new ezcPersistentGeneratorDefinition( ' ezcPersistentSequenceGenerator ' );
$def ->properties [ ' nom ' ] = new ezcPersistentObjectProperty;
$def ->properties [ ' nom ' ] ->columnName = ' full_name ' ;
$def ->properties [ ' nom ' ] ->propertyName = ' nom ' ;
$def ->properties [ ' nom ' ] ->propertyType = ezcPersistentObjectProperty: : PHP_TYPE_STRING;
return $ def ;
?>
|
C'est dans ce fichier qu'il faudra ajouter les définitions de relations.
|
| auteur : is_null |
Il faut d'abord un objet de session.
<?php
$session = new ezcPersistentSession(
ezcDbInstance: : get(),
new ezcPersistentCacheManager( new ezcPersistentCodeManager( " path / to / definitions " ) )
);
ezcPersistentSessionInstance: : set( $ session );
$ session = ezcPersistentSessionInstance: : get();
$ personne = $session ->load ( ' Personne ' , $ identifiant );
?>
|
|
| auteur : is_null | <?php
$personne = new Personne();
$personne ->nom = " Guybrush Threepwood " ;
$ session = ezcPersistentSessionInstance: : get();
$session ->save ( $ personne );
?>
|
|
| auteur : is_null | <?php
$ session = ezcPersistentSessionInstance: : get();
$ personne = $session ->load ( ' Personne ' , $ identifiant );
$personne ->nom = " Guybrush Threepwood " ;
$session ->update ( $ personne );
$session ->saveOrUpdate ( $ personne );
?>
|
|
| auteur : is_null | <?php
$ session = ezcPersistentSessionInstance: : get();
$ personne = $session ->load ( ' Personne ' , $ identifiant );
$session ->delete ( $ personne );
?>
|
|
Consultez les autres F.A.Q.
Les sources présentés sur cette page sont libres de droits,
et vous pouvez les utiliser à votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs.
Copyright ©2003
Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de
l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans
de prison et jusqu'à 300 000 E de dommages et intérêts.
Cette page est déposée à la SACD.
|