Extbase et Fluid

4 939 vues

Publié le

Explications pas-à-pas pour réaliser un plugin de gestion de films avec Extbase et Fluid

0 commentaire
4 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
4 939
Sur SlideShare
0
Issues des intégrations
0
Intégrations
28
Actions
Partages
0
Téléchargements
69
Commentaires
0
J’aime
4
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Extbase et Fluid

  1. 1. Réunion TUG Lausanne Présentation de Xavier Perseguers Monday, September 21, 2009
  2. 2. Agenda Présentation du mini-projet Modèle de données métier Extbase Persistence des données Extbase Affichage et modification des informations Fluid + Extbase Idées d’amélioration Monday, September 21, 2009
  3. 3. Présentation du mini-projet Monday, September 21, 2009
  4. 4. Présentation du mini-projet Cahier des charges Base 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
  5. 5. Modèle de données métier Monday, September 21, 2009
  6. 6. Modèle de données métier Qu’est-ce qu’un film ? Monday, September 21, 2009
  7. 7. Modèle de données métier Qu’est-ce qu’un film ? Titre Date de sortie Acteurs Un film? Réalisateur Genre Phrase marquante Monday, September 21, 2009
  8. 8. Modèle de données métier Base de données On 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
  9. 9. Modèle de données métier Attribut / Entité Attribut : Informations sur un objet nom, téléphone, âge, ... Entité : qui a une identité, qui a des méthodes Exemple : compte bancaire, personne Dépendant du métier Monday, September 21, 2009
  10. 10. 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
  11. 11. Modèle de données métier Monday, September 21, 2009
  12. 12. Modèle de données métier 22.09.2009 - Génération du code du modèle de données uniquement ! Monday, September 21, 2009
  13. 13. Modèle de données métier Création de l’extension Monday, September 21, 2009
  14. 14. Modèle de données métier Création de l’extension Monday, September 21, 2009
  15. 15. Modèle de données métier Création de l’extension Monday, September 21, 2009
  16. 16. Modèle de données métier Création des objets Classes/Domain/Model/Genre.php : Monday, September 21, 2009
  17. 17. Modèle de données métier Création des objets Classes/Domain/Model/Movie.php : Monday, September 21, 2009
  18. 18. Modèle de données métier Création des objets Classes/Domain/Model/Movie.php : Compléter avec tous les attributs Classe à créer selon le même principe Monday, September 21, 2009
  19. 19. 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
  20. 20. Modèle de données métier Création des dépôts d’objets Classes/Domain/Repository/MovieRepository.php : Classes/Domain/Repository/PersonRepository.php : Monday, September 21, 2009
  21. 21. Persistence des données Monday, September 21, 2009
  22. 22. Persistence des données Nom “compatible” avec Extbase Monday, September 21, 2009
  23. 23. Persistence des données Monday, September 21, 2009
  24. 24. Persistence des données Création des champs Ré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
  25. 25. Persistence des données Création des champs Bon à savoir : Colonne “director” ↔ Attribut “Director” Colonne “firstname” ↔ Attribut “Firstname” Colonne “release_date” ↔ Attribut “ReleaseDate” Monday, September 21, 2009
  26. 26. Persistence des données Réorganisation pour Extbase Monday, September 21, 2009
  27. 27. Persistence des données Mise à jour des références Fichier ext_tables.php (pour toutes les tables) : Monday, September 21, 2009
  28. 28. Persistence des données Mise à jour des références Fichier ext_tables.php (pour toutes les tables) : Monday, September 21, 2009
  29. 29. Persistence des données Mise à jour des références Fichier Configuration/TCA/tca.php : Monday, September 21, 2009
  30. 30. Persistence des données Mise à jour des références Fichier Configuration/TCA/tca.php : Monday, September 21, 2009
  31. 31. Persistence des données Relation Modèle ↔ Tables Monday, September 21, 2009
  32. 32. Persistence des données Relation Modèle ↔ Tables Pour toutes les relations uniquement Monday, September 21, 2009
  33. 33. Démonstration (films dans le backend) Monday, September 21, 2009
  34. 34. Affichage / Modification des données Monday, September 21, 2009
  35. 35. Affichage des données Fonctionnement Cré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
  36. 36. Affichage des données Création d’un plugin Informer 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
  37. 37. Affichage des données Création d’un plugin Contrôleur Classes/Controller/MovieController.php C’est tout ! Monday, September 21, 2009
  38. 38. Affichage des données Création d’un plugin Gabarit Resources/Private/Templates/Movie/index.html Nom du contrôleur Action Format de rendu (html par défaut) Monday, September 21, 2009
  39. 39. Affichage des données Création d’un plugin Gabarit Resources/Private/Templates/Movie/index.html Tx_Movies_Domain_Model_Movie Monday, September 21, 2009
  40. 40. Affichage des données Création d’un plugin Associer le code à exécuter pour afficher notre plugin Fichier ext_localconf.php : Monday, September 21, 2009
  41. 41. Affichage des données Création d’un plugin Associer 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
  42. 42. Démonstration (ajout du plugin) Monday, September 21, 2009
  43. 43. Modification des données Ajouter un film Cré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
  44. 44. Modification des données Ajouter un film Gabarit Resources/Private/Templates/Movie/new.html : Nom du contrôleur Action Format de rendu (html par défaut) Monday, September 21, 2009
  45. 45. Modification des données Ajouter un film Gabarit Resources/Private/Templates/Movie/new.html : Monday, September 21, 2009
  46. 46. Modification des données Ajouter un film Actions “new” et “create” : Monday, September 21, 2009
  47. 47. Modification des données Ajouter un film Référencer les nouvelles actions dans ext_localconf.php : Monday, September 21, 2009
  48. 48. Modification des données Modifier un film Modifier le gabarit de la liste des films : Enregistrer les 2 nouvelles actions : Monday, September 21, 2009
  49. 49. Modification des données Modifier un film Modifier le gabarit de la liste des films : Enregistrer les 2 nouvelles actions : Monday, September 21, 2009
  50. 50. Modification des données Modifier un film Actions “edit” et “update” : Monday, September 21, 2009
  51. 51. Modification des données Modifier un film Gabarit 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
  52. 52. Idées d’amélioration Monday, September 21, 2009
  53. 53. Idées d’amélioration Modèle de données Films : Gestion des acteurs ainsi que leur(s) rôle(s) Personnes : Ajout / Modification Monday, September 21, 2009
  54. 54. Idées d’amélioration Plugins Films : Configuration FlexForm pour choisir un genre (DEMO) Ajout de l’affiche dans le rendu (DEMO) Intégration d’informations supplémentaires extraites de http://www.imdb.com (The Internet Movie Database) Personnes : Ajout / Modification Utilisation de ExtJS pour le rendu (DEMO) Monday, September 21, 2009
  55. 55. Démonstration Monday, September 21, 2009
  56. 56. 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
  57. 57. 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
  58. 58. Conclusion Résumé Mise en place délicate sans Kickstarter Extbase “complet” Mais ... Le jeu en vaut la chandelle ! Monday, September 21, 2009
  59. 59. Documentation et Liens Extbase, Fluid et l’extension blog_example http://forge.typo3.org/projects/show/typo3v4-mvc MVC + ExtJS http://forge.typo3.org/projects/show/extension-mvc_extjs Présentation et fichiers http://xavier.perseguers.ch/tutoriels/typo3/developpement/ extbase-fluid.html Monday, September 21, 2009
  60. 60. Merci de votre attention Monday, September 21, 2009
  61. 61. Merci de votre attention Questions ? Monday, September 21, 2009
  62. 62. Monday, September 21, 2009

×