slam4:php:phalcon:models

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
slam4:php:phalcon:models [2015/01/17 01:37] – [4.2- Ajout/mise à jour] jcheronslam4:php:phalcon:models [2019/08/31 14:21] (Version actuelle) – modification externe 127.0.0.1
Ligne 1: Ligne 1:
 ====== Modèles ====== ====== Modèles ======
 Un modèle est une classe métier, représentant une partie des données d'une application. Dans la plupart des cas, un modèle est associé à une table de la base de données.\\ Un modèle est une classe métier, représentant une partie des données d'une application. Dans la plupart des cas, un modèle est associé à une table de la base de données.\\
-[[http://docs.phalconphp.com/en/latest/api/Phalcon_Mvc_Model.html|Phalcon\Mvc\Model]] est la classe de base des models d'une application. Cette classe met à disposition des fonctionnalités CRUD, offre des possibilités de recherche avancées, et permet de gérer les relations entre models, le tout sans avoir besoin d'utiliser SQL.+[[https://api.phalconphp.com/class/Phalcon/Mvc/Model.html|Phalcon\Mvc\Model]] est la classe de base des models d'une application. Cette classe met à disposition des fonctionnalités CRUD, offre des possibilités de recherche avancées, et permet de gérer les relations entre models, le tout sans avoir besoin d'utiliser SQL
 + 
 +Phalcon implémente **ActiveRecord** pour sa partie ORM, il utilise donc l'héritage sur les Models, par opposition à certains ORM qui implémentent **[[http://en.wikipedia.org/wiki/Data_mapper_pattern|DataMapper]]** (Doctrine 2) et permettent de travailler avec des models plus indépendants de la couche technique liée à la persistance (POPO).
  
 ===== -- Création de models ===== ===== -- Création de models =====
Ligne 551: Ligne 553:
 } }
 </sxh> </sxh>
 +
 +Mise à jour d'un objet et de l'objet associé par un **belongsTo** :
 +<sxh php>
 +    public function addCategorieUserAction(){
 +    $categorie=new Categorie();
 +    $categorie->setNom("Auteurs");
 +
 +    $user=new Utilisateur();
 +    $user->setNom("SMITH");
 +    $user->setPrenom("ROBERT");
 +    $user->setAge(30);
 +    $user->setAdulte(1);
 +
 +    $user->categorie=$categorie;
 +    if($user->save()==false){
 +    echo "Problème d'enregistrement \n";
 +    foreach ($user->getMessages() as $message) {
 +    echo $message, "\n";
 +    }
 +    }else{
 +    echo "Catégorie  & utilisateur sauvegardés";
 +    }
 +    }
 +</sxh>
 +
 +
 +==== -- Suppression d'enregistrements ====
 +
 +La méthode **Phalcon\Mvc\Model::delete()** permet de supprimer un enregistrement :
 +<sxh php;title:Exemple de suppression>
 +<?php
 +
 +$user = Utilisateur::findFirst(11);
 +if ($user != false) {
 +    if ($user->delete() == false) {
 +        echo "Impossible de supprimer l'utilisateur : \n";
 +        foreach ($user->getMessages() as $message) {
 +            echo $message, "\n";
 +        }
 +    } else {
 +        echo "L'utilisateur a été supprimé";
 +    }
 +}
 +
 +</sxh>
 +
 +Il est également possible de supprimer plusieurs enregistrement en parcourant un résultat avec un foreach :
 +
 +<sxh php;title:Suppression dans parcours d'un curseur> 
 +<?php
 +
 +foreach (Utilisateur::find("ville='Caen'") as $user) {
 +    if ($user->delete() == false) {
 +        echo "Impossible de supprimer l'utilisateur : \n";
 +        foreach ($user->getMessages() as $message) {
 +            echo $message, "\n";
 +        }
 +    } else {
 +        echo "L'utilisateur a été supprimé";
 +    }
 +}
 +</sxh>
 +
 +===== -- Suppléments =====
 +
 +==== -- Events ====
 +Phalcon permet de gérer/contrôler la mise à jour des objets via des événements, contrôlable de préférence par mise en place d'un [[http://docs.phalconphp.com/en/latest/reference/models.html#events-and-events-manager|eventManager]]. 
 +==== -- Behaviors ====
 +
 +Phalcon met a disposition un ensemble d'outils permettant d'associer un comportement aux objets : voir [[http://docs.phalconphp.com/en/latest/reference/models.html#behaviors|behaviors]] :
 +  * timeStempable : pour mémoriser l'heure de mise à jour/ajout d'objets
 +  * softDelete : pour marquer des enregistrements comme supprimés
  • slam4/php/phalcon/models.1421455048.txt.gz
  • Dernière modification : il y a 6 ans
  • (modification externe)