62

Click here to load reader

Extbase et Fluid

Embed Size (px)

Citation preview

Page 1: Extbase et Fluid

Réunion TUGLausanne

Présentation de Xavier PerseguersMonday, September 21, 2009

Page 2: Extbase et Fluid

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

Page 3: Extbase et Fluid

Présentation dumini-projet

Monday, September 21, 2009

Page 4: Extbase et Fluid

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

Page 5: Extbase et Fluid

Modèle de données métier

Monday, September 21, 2009

Page 6: Extbase et Fluid

Modèle de données métier

Qu’est-ce qu’un film ?

Monday, September 21, 2009

Page 7: Extbase et Fluid

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

Page 8: Extbase et Fluid

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

Page 9: Extbase et Fluid

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

Page 10: Extbase et Fluid

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

Page 11: Extbase et Fluid

Modèle de données métier

Monday, September 21, 2009

Page 12: Extbase et Fluid

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

Page 13: Extbase et Fluid

Modèle de données métier

Création de l’extension

Monday, September 21, 2009

Page 14: Extbase et Fluid

Modèle de données métier

Création de l’extension

Monday, September 21, 2009

Page 15: Extbase et Fluid

Modèle de données métier

Création de l’extension

Monday, September 21, 2009

Page 16: Extbase et Fluid

Modèle de données métier

Création des objetsClasses/Domain/Model/Genre.php :

Monday, September 21, 2009

Page 17: Extbase et Fluid

Modèle de données métier

Création des objetsClasses/Domain/Model/Movie.php :

Monday, September 21, 2009

Page 18: Extbase et Fluid

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

Page 19: Extbase et Fluid

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

Page 20: Extbase et Fluid

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

Page 21: Extbase et Fluid

Persistence des données

Monday, September 21, 2009

Page 22: Extbase et Fluid

Persistence des données

Nom “compatible” avec Extbase

Monday, September 21, 2009

Page 23: Extbase et Fluid

Persistence des données

Monday, September 21, 2009

Page 24: Extbase et Fluid

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

Page 25: Extbase et Fluid

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

Page 26: Extbase et Fluid

Persistence des données

Réorganisation pour Extbase

Monday, September 21, 2009

Page 27: Extbase et Fluid

Persistence des données

Mise à jour des références

Fichier ext_tables.php (pour toutes les tables) :

Monday, September 21, 2009

Page 28: Extbase et Fluid

Persistence des données

Mise à jour des références

Fichier ext_tables.php (pour toutes les tables) :

Monday, September 21, 2009

Page 29: Extbase et Fluid

Persistence des données

Mise à jour des références

Fichier Configuration/TCA/tca.php :

Monday, September 21, 2009

Page 30: Extbase et Fluid

Persistence des données

Mise à jour des références

Fichier Configuration/TCA/tca.php :

Monday, September 21, 2009

Page 31: Extbase et Fluid

Persistence des données

Relation Modèle ↔ Tables

Monday, September 21, 2009

Page 32: Extbase et Fluid

Persistence des données

Relation Modèle ↔ Tables

Pour toutes les relations uniquement

Monday, September 21, 2009

Page 33: Extbase et Fluid

Démonstration(films dans le backend)

Monday, September 21, 2009

Page 34: Extbase et Fluid

Affichage / Modification des données

Monday, September 21, 2009

Page 35: Extbase et Fluid

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

Page 36: Extbase et Fluid

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

Page 37: Extbase et Fluid

Affichage des données

Création d’un pluginContrôleur Classes/Controller/MovieController.php

C’est tout !

Monday, September 21, 2009

Page 38: Extbase et Fluid

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

Page 39: Extbase et Fluid

Affichage des données

Création d’un pluginGabarit Resources/Private/Templates/Movie/index.html

Tx_Movies_Domain_Model_Movie

Monday, September 21, 2009

Page 40: Extbase et Fluid

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

Page 41: Extbase et Fluid

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

Page 42: Extbase et Fluid

Démonstration(ajout du plugin)

Monday, September 21, 2009

Page 43: Extbase et Fluid

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

Page 44: Extbase et Fluid

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

Page 45: Extbase et Fluid

Modification des données

Ajouter un filmGabarit Resources/Private/Templates/Movie/new.html :

Monday, September 21, 2009

Page 46: Extbase et Fluid

Modification des données

Ajouter un filmActions “new” et “create” :

Monday, September 21, 2009

Page 47: Extbase et Fluid

Modification des données

Ajouter un filmRéférencer les nouvelles actions dans ext_localconf.php :

Monday, September 21, 2009

Page 48: Extbase et Fluid

Modification des données

Modifier un filmModifier le gabarit de la liste des films :

Enregistrer les 2 nouvelles actions :

Monday, September 21, 2009

Page 49: Extbase et Fluid

Modification des données

Modifier un filmModifier le gabarit de la liste des films :

Enregistrer les 2 nouvelles actions :

Monday, September 21, 2009

Page 50: Extbase et Fluid

Modification des données

Modifier un filmActions “edit” et “update” :

Monday, September 21, 2009

Page 51: Extbase et Fluid

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

Page 52: Extbase et Fluid

Idées d’amélioration

Monday, September 21, 2009

Page 53: Extbase et Fluid

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

Page 54: Extbase et Fluid

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

Page 55: Extbase et Fluid

Démonstration

Monday, September 21, 2009

Page 56: Extbase et Fluid

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

Page 57: Extbase et Fluid

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

Page 58: Extbase et Fluid

Conclusion

RésuméMise en place délicate sans Kickstarter Extbase “complet”

Mais ...

Le jeu en vaut la chandelle !

Monday, September 21, 2009

Page 60: Extbase et Fluid

Merci de votre attention

Monday, September 21, 2009

Page 61: Extbase et Fluid

Questions ?

Merci de votre attention

Monday, September 21, 2009

Page 62: Extbase et Fluid

Monday, September 21, 2009