Documentation
Modèle
Table des matières ▼
Présentation
La couche modèle est celle qui gère la lecture et l'enregistrement d'informations dans la base de données.
Temma propose 3 mécanismes pour cela :
- Accès direct à la base de données, en utilisant l'objet d'abstraction \Temma\Base\Datasource\Sql.
- Création automatique d'un objet DAO par le framework, pour accéder facilement à une table sans écrire de code.
- Écriture de vos propres objets DAO, pour faire des requêtes plus efficaces que ne le feraient un outil automatique.
La manière d'utiliser ces mécanismes est à votre choix. Toutefois, nous vous suggérons de procéder de la sorte :
-
Commencez par utiliser la DAO générée automatiquement par Temma. Elle vous permet d'écrire votre code applicatif rapidement.
Tant que vous n'avez besoin que de requêtes simples portant sur une seule table, cela fonctionne très bien. Vous écrirez par exemple :
// récupération d'un utilisateur à partir de son identifiant $user = $this->_dao->get($userId); // récupération de tous les utilisateurs // dont le champ 'valid' est à TRUE $validUsers = $this->_dao->search( $this->_dao->criteria()->is('valid') );
-
Si vous souhaitez simplifier l'utilisation de la DAO, vous pouvez créer votre propre DAO, qui étende celle par défaut.
Par exemple, vous pourrez créer une méthode :
qui sera plus simple d'emploi et beaucoup plus explicite que :$proUsers = $this->_dao->getLastProfessionalUsers(5);
Ces méthodes supplémentaires ne seront que des surcouches servant à simplifier l'utilisation de la DAO, mais l'implémentation restera toujours aussi simple et rapide à écrire.$proUsers = $this>_dao->search( $this->_dao->criteria() ->equal('type', 'pro') ->is('valid'), ['date_creation' => 'desc'], null, 5 );
- Par la suite, vous pourrez enrichir votre DAO personnalisée, pour lui faire réaliser des requêtes complexes (avec des jointures sur plusieurs tables, des sous-requêtes, des regroupements, etc.). Vous devrez alors accéder directement à la base de données et écrire vos propres requêtes SQL, mais vous bénéficierez du mécanisme de simplification d'écriture des requêtes proposé par le framework.
Néanmoins, si vous connaissez bien le SQL, nous vous incitons à écrire directement vos DAO en y plaçant des requêtes SQL. Ce sera toujours plus efficace à moyen terme.
Précédent : | Sources de données |
Suivant : | DAO génériques |
Table des matières
- Migration : Comment passer de Temma 1.x à la version 2
- Installation : Télécharger Temma et l'installer pour démarrer votre projet Web
- Configuration : Toutes les directives de configuration du fichier etc/temma.json et les variables d'environnement utilisables en option
- Bibliothèques externes : Comment utiliser des bibliothèques de fonctions externes
- Routage : Le système de routage par défaut de Temma, et le routage avancé
- Log : Utilisation du système de log, gestion par niveaux de criticité
- Contrôleurs : Pièces essentiels de votre application Web
- Vues : Templates Smarty ou exports JSON/CSV/RSS/iCal/INI
- Injection de dépendances : La colonne vertébrale de vos développements applicatifs
- Sessions : Extension des sessions utilisateurs gérées par PHP
- Sources de données : Pour gérer l'accès aux données de manière unifiée
-
Modèle :
Comment utiliser les DAO pour accéder aux bases de données
- DAO génériques : Objets DAO simples, pour accéder facilement à une table
- DAO personnalisées : Objets personnalisés, pour encapsuler des requêtes complexes
- Flux d'exécution : Comment gérer le flux d'exécution, entre les plugins et le contrôleur
- Plugins : Comment utiliser les plugins, et écrire les vôtres pour modulariser votre code
- Attributs : Comment filtrer l'accès aux contrôleurs et aux actions
- Interface en ligne de commande : Pour créer des scripts exécutables en ligne de commande, initialisés automatiquement par Temma
- Helpers : Objets proposés par Temma pour vous aider dans plusieurs circonstances