Accueil
Club Emploi Blogs   TV   Dév. Web PHP XML Python Autres 2D-3D-Jeux Sécurité Windows Linux PC Mac
Accueil Conception Java DotNET Visual Basic  C  C++ Delphi Eclipse MS-Office SQL & SGBD Oracle  4D  Business Intelligence
logo
Sommaire > Bases de données > Mapping objet relationnel (ORM) et persistance > PhpMyObject
        Qu'est ce que PMO ?
        Comment installer PMO ?
        Comment fonctionne PMO ?
        Comment gérer la persistance avec PMO ?
        Comment ajouter un tuple avec PMO ?
        Comment charger un seul tuple avec PMO ?
        Comment modifier un tuple avec PMO ?
        Comment supprimer un tuple avec PMO ?
        Comment charger plusieurs objets en même temps avec PMO ?
        Comment modifier l'aliasing avec PMO ?
        Comment déclarer manuellement un schéma de table avec PMO ?



Comment installer PMO ?
auteur : Nicolas Boiteux
Il faut télécharger les dernières sources : http://pmo.developpez.com/

PHP 5.1 >= est nécessaire.

PMO peut utiliser le driver MySQL ou PostgreSQL de PHP, ou bien PDO (dans ce cas il faut qu'il soit activé dans PHP).

lien : faq Qu'est-ce que PDO ?

Comment fonctionne PMO ?
auteur : Nicolas Boiteux
PMO sert à interroger votre SGBD et à recevoir des objets PHP en retour. Il suffit d'inclure la classe contrôleur dans votre script PHP.


Comment gérer la persistance avec PMO ?
auteur : Nicolas Boiteux
PMO découvre le schéma des tables lors de la première execution de la requête SQL. À partir de ces schémas, il crée des classes qu'il place dans le répertoire cache/. PMO n'a plus besoin d'interroger ensuite le SGBD pour découvrir le schéma, il utilise directement ces classes.


Comment ajouter un tuple avec PMO ?
auteur : Nicolas Boiteux
Prenons l'exemple d'une table utilisateur qui est défini comme cela dans le SGBD :
champs id autoincrement primary key
champs name
champs password
Voici le script PHP :
<?php

require_once 'PMO_Core/PMO_MyController.php';

$user = PMO_MyObject::factory('utilisateur');
$user->name = 'toto';
$user->password = 'monpassword';
$user->commit();
?>

Comment charger un seul tuple avec PMO ?
auteur : Nicolas Boiteux
Pour charger un tuple, il faut renseigner les primary key et utiliser load(). Prenons l'exemple de cette table :
champs id autoincrement primary key
champs name
champs password
Voici le script PHP :
<?php

require_once 'PMO_Core/PMO_MyController.php';

$user = PMO_MyObject::factory('utilisateur');
$user->id = 1;
$user->load();

?>

Comment modifier un tuple avec PMO ?
auteur : Nicolas Boiteux
Pour modifier un tuple, il faut déjà avoir l'objet PMO correspondant et faire un commit(). Prenons l'exemple de cette table :
champs id autoincrement primary key
champs name
champs password
Voici le script PHP :
<?php

require_once 'PMO_Core/PMO_MyController.php';

$user = PMO_MyObject::factory('utilisateur');
$user->id = 1;
$user->load();

$user->name = "nouveau nom";
$user->commit();

?>

Comment supprimer un tuple avec PMO ?
auteur : Nicolas Boiteux
Pour supprimer un tuple, il faut déjà avoir l'objet PMO correspondant et faire un delete(). Prenons l'exemple de cette table :
champs id autoincrement primary key
champs name
champs password
Voici le script PHP :
<?php

require_once 'PMO_Core/PMO_MyController.php';

$user = PMO_MyObject::factory('utilisateur');
$user->id = 1;
$user->load();

$user->delete();

?>

Comment charger plusieurs objets en même temps avec PMO ?
auteur : Nicolas Boiteux
PMO permet de récupérer des objets de différents types et gérer également les relations entre objets
<?php

require_once 'PMO_Core/PMO_MyController.php';

$controller = new PMO_MyController();
$map = $controller->queryController("select * from utilisateur,ville where utilisateur.id_ville=ville.id_ville;");

while ($result = $map->fetchArray()){
    $utilisateur = $result['utilisateur'];
    $ville = $result['ville'];

    echo($utilisateur->nom);
    echo($ville->nom);
}

?>

Comment modifier l'aliasing avec PMO ?
auteur : Nicolas Boiteux
Pour modifier la correspondance entre nom de la colonne d'une table dans le SGBD et le nom que vous allez utiliser dans votre code, il faut modifier la variable table_alias dans la classe correspondante dans le répertoire cache/.


Comment déclarer manuellement un schéma de table avec PMO ?
auteur : Nicolas Boiteux
Si PMO ne découvre pas le schéma de votre table automatiquement, vous pouvez l'écrire vous-même en créant une classe portant le nom de la table dans le répertoire cache/.



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.

Vos questions techniques : forum d'entraide Accueil - Publiez vos articles, tutoriels, cours et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones. Nous contacter - Copyright 2000..2005 www.developpez.com