Click here to load reader
Upload
xavier-perseguers
View
4.442
Download
2
Embed Size (px)
Citation preview
Réunion TUGLausanne
Présentation de Xavier PerseguersMonday, September 21, 2009
Agenda
Extbase
Extbase
Fluid + Extbase
Présentation du mini-projet
Modèle de données métier
Persistence des données
Affichage et modification des informations
Idées d’amélioration
Monday, September 21, 2009
Présentation dumini-projet
Monday, September 21, 2009
Présentation du mini-projet
Cahier des chargesBase de données de films
Liste de films (titre, réalisateur, genre)
Ajout de nouveaux films
Modification des données existantes
Monday, September 21, 2009
Modèle de données métier
Monday, September 21, 2009
Modèle de données métier
Qu’est-ce qu’un film ?
Monday, September 21, 2009
Modèle de données métier
Qu’est-ce qu’un film ?
Un film?
Titre
Date de sortie
Acteurs
Réalisateur
Phrase marquante
Genre
Monday, September 21, 2009
Modèle de données métier
Base de donnéesOn l’oublie !
Elle ne sert “à rien”
On se concentre sur le métier !
N’essaie pas de tordre la cuillère, car c’est impossible.Tu dois essayer de te concentrer pour faire éclater la vérité : la cuillère n’existe pas !
Matrix
Monday, September 21, 2009
Modèle de données métier
Attribut / Entité
Attribut : Informations sur un objetnom, téléphone, âge, ...
Entité : qui a une identité, qui a des méthodesExemple : compte bancaire, personne
Dépendant du métier
Monday, September 21, 2009
Modèle de données métier
Entité, Attribut, ...Film : Entité / Agrégat racine (Aggregate Root)
Réalisateur : relation 1:n vers une “Personne”
Genre : relation 1:n vers un “Genre”
Acteurs : relation m:n vers des “Personne”s
Personne : Entité (Entity)
Nom, Prénom, ...
Genre : Object valeur (Value Object)
Monday, September 21, 2009
Modèle de données métier
Monday, September 21, 2009
Modèle de données métier
22.09.2009 - Génération du codedu modèle de données uniquement !
Monday, September 21, 2009
Modèle de données métier
Création de l’extension
Monday, September 21, 2009
Modèle de données métier
Création de l’extension
Monday, September 21, 2009
Modèle de données métier
Création de l’extension
Monday, September 21, 2009
Modèle de données métier
Création des objetsClasses/Domain/Model/Genre.php :
Monday, September 21, 2009
Modèle de données métier
Création des objetsClasses/Domain/Model/Movie.php :
Monday, September 21, 2009
Modèle de données métier
Création des objetsClasses/Domain/Model/Movie.php :
Classe à créer selon le même
principe
Compléter avec tous les
attributs
Monday, September 21, 2009
Modèle de données métier
Dépôt d’objets (repository)Point d’entrée pour accéder aux entités = Guichet
Méthode add(), remove(), replace(), update()
Méthodes findAll(),findBy*()
Monday, September 21, 2009
Modèle de données métier
Création des dépôts d’objetsClasses/Domain/Repository/MovieRepository.php :
Classes/Domain/Repository/PersonRepository.php :
Monday, September 21, 2009
Persistence des données
Monday, September 21, 2009
Persistence des données
Nom “compatible” avec Extbase
Monday, September 21, 2009
Persistence des données
Monday, September 21, 2009
Persistence des données
Création des champsRépéter l’opération pour les tables :
tx_movies_domain_model_person
tx_movies_domain_model_movie
Relation vers une autre entité
Monday, September 21, 2009
Persistence des données
Création des champsBon à savoir :
Colonne “director” ↔ Attribut “Director”
Colonne “firstname” ↔ Attribut “Firstname”
Colonne “release_date” ↔ Attribut “ReleaseDate”
Monday, September 21, 2009
Persistence des données
Réorganisation pour Extbase
Monday, September 21, 2009
Persistence des données
Mise à jour des références
Fichier ext_tables.php (pour toutes les tables) :
Monday, September 21, 2009
Persistence des données
Mise à jour des références
Fichier ext_tables.php (pour toutes les tables) :
Monday, September 21, 2009
Persistence des données
Mise à jour des références
Fichier Configuration/TCA/tca.php :
Monday, September 21, 2009
Persistence des données
Mise à jour des références
Fichier Configuration/TCA/tca.php :
Monday, September 21, 2009
Persistence des données
Relation Modèle ↔ Tables
Monday, September 21, 2009
Persistence des données
Relation Modèle ↔ Tables
Pour toutes les relations uniquement
Monday, September 21, 2009
Démonstration(films dans le backend)
Monday, September 21, 2009
Affichage / Modification des données
Monday, September 21, 2009
Affichage des données
FonctionnementCréation d’un plugin qui affiche les films
Le plugin contient une action (p. ex. “index”)
L’action prépare les données et les transmet à Fluid
Fluid utilise un gabarit pour afficher les informations
Monday, September 21, 2009
Affichage des données
Création d’un pluginInformer TYPO3 de la présence de notre plugin :
Fichier ext_tables.php :
Avec un texte traduisible, p. ex. :LLL:EXT:movies/Resources/Private/Language/locallang_db.xml:plugin.pi1
Monday, September 21, 2009
Affichage des données
Création d’un pluginContrôleur Classes/Controller/MovieController.php
C’est tout !
Monday, September 21, 2009
Affichage des données
Création d’un pluginGabarit Resources/Private/Templates/Movie/index.html
Nom du contrôleur Action Format de rendu(html par défaut)
Monday, September 21, 2009
Affichage des données
Création d’un pluginGabarit Resources/Private/Templates/Movie/index.html
Tx_Movies_Domain_Model_Movie
Monday, September 21, 2009
Affichage des données
Création d’un pluginAssocier le code à exécuter pour afficher notre plugin
Fichier ext_localconf.php :
Monday, September 21, 2009
Affichage des données
Création d’un pluginAssocier le code à exécuter pour afficher notre plugin
Fichier ext_localconf.php :
Attention : nom de plugin identique à celui du fichier ext_tables.php
Monday, September 21, 2009
Démonstration(ajout du plugin)
Monday, September 21, 2009
Modification des données
Ajouter un filmCréer l’action “new” qui est présente dans le gabarit :
Elle doit afficher un formulaire de saisie qui une fois posté doit ajouter le nouveau film au dépôt
Monday, September 21, 2009
Modification des données
Ajouter un filmGabarit Resources/Private/Templates/Movie/new.html :
Nom du contrôleur Action Format de rendu(html par défaut)
Monday, September 21, 2009
Modification des données
Ajouter un filmGabarit Resources/Private/Templates/Movie/new.html :
Monday, September 21, 2009
Modification des données
Ajouter un filmActions “new” et “create” :
Monday, September 21, 2009
Modification des données
Ajouter un filmRéférencer les nouvelles actions dans ext_localconf.php :
Monday, September 21, 2009
Modification des données
Modifier un filmModifier le gabarit de la liste des films :
Enregistrer les 2 nouvelles actions :
Monday, September 21, 2009
Modification des données
Modifier un filmModifier le gabarit de la liste des films :
Enregistrer les 2 nouvelles actions :
Monday, September 21, 2009
Modification des données
Modifier un filmActions “edit” et “update” :
Monday, September 21, 2009
Modification des données
Modifier un filmGabarit Resources/Private/Templates/Movie/edit.html :
Nom du contrôleur Action Format de rendu(html par défaut)
en plus !
valeur actuelle
valeur actuelle
Monday, September 21, 2009
Idées d’amélioration
Monday, September 21, 2009
Idées d’amélioration
Modèle de donnéesFilms :
Gestion des acteurs ainsi que leur(s) rôle(s)
Personnes :
Ajout / Modification
Monday, September 21, 2009
Idées d’amélioration
PluginsFilms :
Configuration FlexForm pour choisir un genre (DEMO)
Ajout de l’affiche dans le rendu (DEMO)
Intégration d’informations supplémentaires extraites dehttp://www.imdb.com (The Internet Movie Database)
Personnes :
Ajout / Modification
Utilisation de ExtJS pour le rendu (DEMO)
Monday, September 21, 2009
Démonstration
Monday, September 21, 2009
Conclusion
RésuméExtbase = Modèle et Contrôleur de MVC
Fluid = Vue de MVC
(mvc_extjs = “colle” entre Extbase, Fluid et ExtJS)
Monday, September 21, 2009
Conclusion
RésuméAjouter un élément
newAction (affichage du formulaire)
createAction (ajout au dépôt)
Modifier un élément
editAction (affichage du formulaire)
updateAction (mise à jour dans le dépôt)
Monday, September 21, 2009
Conclusion
RésuméMise en place délicate sans Kickstarter Extbase “complet”
Mais ...
Le jeu en vaut la chandelle !
Monday, September 21, 2009
Documentation et LiensExtbase, Fluid et l’extension blog_examplehttp://forge.typo3.org/projects/show/typo3v4-mvc
MVC + ExtJShttp://forge.typo3.org/projects/show/extension-mvc_extjs
Présentation et fichiershttp://xavier.perseguers.ch/tutoriels/typo3/developpement/extbase-fluid.html
Monday, September 21, 2009
Merci de votre attention
Monday, September 21, 2009
Questions ?
Merci de votre attention
Monday, September 21, 2009
Monday, September 21, 2009