Extbase et Fluid

Preview:

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

Merci de votre attention

Monday, September 21, 2009

Questions ?

Merci de votre attention

Monday, September 21, 2009

Monday, September 21, 2009

Recommended