slam4:php:phalcon:models

Ceci est une ancienne révision du document !


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.
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.

<?php

class Utilisateur extends \Phalcon\Mvc\Model
{

}

Pour des raisons de clarté, et de performances (avec PHP 5.4/5.5), il est préférable de déclarer dans la classe les membres correspondant aux colonnes de la table de la base de données associée.

<?php
class Utilisateur extends \Phalcon\Mvc\Model{

    /**
     *
     * @var string
     */
    protected $prenom;

    /**
     *
     * @var string
     */
    protected $nom;


    /**
     * Method to set the value of field prenom
     *
     * @param string $prenom
     * @return $this
     */
    public function setPrenom($prenom)
    {
        $this->prenom = $prenom;

        return $this;
    }

    /**

    /**
     * Method to set the value of field nom
     *
     * @param string $nom
     * @return $this
     */
    public function setNom($nom)
    {
        $this->nom = $nom;

        return $this;
    }

    /**
     * Returns the value of field prenom
     *
     * @return string
     */
    public function getPrenom()
    {
        return $this->prenom;
    }

    /**
     * Returns the value of field nom
     *
     * @return string
     */
    public function getNom()
    {
        return $this->nom;
    }

}

Il est préférable de respecter l'encapsulation, et de mettre les membres de données en protégé, en les dotant d'accesseurs (getters/setters), plutôt que de mettre les membres de données en public.

Par défaut, Phalcon effectue un mappage entre classes et tables de la base de données de la façon suivante :

  • Table ⇔ Classe du même nom
  • Enregistrement ⇔ instance de classe (objet métier)
  • Colonne (champ) ⇔ membre de données du même nom

Base de données (Table) Modèle objet (Classe)

Si le nom de la table de la base de données ne correspond pas au nom de la classe, il est possible de surdéfinir la méthode getSource :

class Users extends \Phalcon\Mvc\Model{

    public function getSource(){
        return "Utilisateur";
    }

}

  • slam4/php/phalcon/models.1421178927.txt.gz
  • Dernière modification : il y a 7 ans
  • (modification externe)