Aller au contenu

Comment utiliser le pattern Factory pour accélérer votre développement PHP expert

Dans ce nouveau cours sur PHP 5 avancé, découvrez le modèle de conception Factory (ou Fabrique).

Ce modèle vous permettra d’instancier des objets très rapidement, à la volée, sans connaître les détails de l’objet.

Tout  est expliqué dans la vidéo.

[ppmaccordion][ppmtoggle title= »Afficher le texte de la vidéo »]

Comment utiliser le pattern Factory pour accélérer votre développement PHP expert

Bonjour à tous et bienvenu sur développement facile.

Ensemble on continue le développement PHP 5 avancé avec HTML 5 et l’utilisation des modèles de conceptions, cette fois vous allez découvrir le modèle de conception fabrique ou alors appeler Factory en anglais. Vous avez peut être entendu ce mot Factory ou fabrique à vous de choisir celui qui vous parle le plus.

Le Modèle Fabrique

Le modèle de conception fabrique est utilisé très souvent, vous aller le retrouver très souvent, un petit peu comme singleton. Il permet de déléguer l’instanciation d’une classe à un objet fabrique. C’est à dire au lieu d’instancier directement une classe c’est une fabrique qui va s’occuper de créer les objets en fonction du paramètre transmis. Si vous avez plusieurs objets de types différents, plutôt que de les instancier un par un,  dans certains cas, vous allez utiliser une fabrique qui va s’occuper de créer vos objets. Lorsque deux classe implémentent, héritent, d’une même classe mère ou implémente la même interface dans certaine situation c’est très difficile de savoir le type d’objet à instancier et bien la solution c’est de laisser la fabrique s’en occuper  donc en fonction des paramètres d’entrée c’est la fabrique qui va s’occuper de créer l’objet adéquate directement.

La classe fabrique doit fournir une méthode qui permet d’instancier si un objet donné en fonction du paramètre qui lui est fourni et de retourner l’instance de l’objet qui est créé, bien évidemment et après vous aller travailler avec cette instance. L’objectif du modèle de conception fabrique, c’est de fournir un objet prêt à l’emploi déjà configuré correctement et qui libère le code client de toute responsabilité. Pas de choix de l’implémentation à faire, pas de configuration, pas d’instanciation, c’est la fabrique qui s’occupe de tout ça, d’où son gros, gros, avantage. Vous pouvez utiliser le modèle de conception fabrique dans des cas … par exemple je vous ai mis quelques cas typiques, il y en a d’autres bien évidemment. Vous avez plusieurs objets qui utilisent la même interface ou qui hérite de la même classe abstraite mais chacun est adapter à un contexte différent. Par exemple une classe de gestion des données mais qui gère des données soit dans MySQL soit dans orcale, soit dans PostGreSql, et là, un objet fabrique ça vaut le coup Karima car il va créer l’objet en fonction de la base de données vous attaquer, très, très, intéressant. Ou alors vous pouvez centraliser le code en charge de l’objet à créer c’est aussi un avantage. Vous avez plusieurs objets et la fabrique va s’occuper de créer l’objet adéquate, de le configurer et de vous renvoyer cette instance que vous allez utiliser directement.

Exemple pratique

Le mieux, c’est de voir cela à travers un exemple de code source, ça vous parlera beaucoup mieux, du concret, du visuel, c’est parti.

Alors le modèle fabrique, concrètement comment il fonctionne ? vous avez un objet produit donc classique avec une référence, un nom du modèle et un type de produit donc on va dire un magasin que c’est un magasin de meubles, le type ça peut être des chaises, des tables, des sofas etc. un constructeur qui permet de créer une référence et un modèle, des méthodes pour récupérer, tout simplement, la référence, le modèle et le type, et là on a les différentes classes du produit. Donc ça c’est le produit de base. Et après on a des classes qui étendent le produit. ProductChaise c’est le type qui change en fait donc que ça étend la classe product. Toutes ses méthodes et les propriétés existent dans ces ProductChaise, ProductTable, ProductMeuble, ProductSofa, etc. Vous pouvez rajouter autant de classe qu’il y a de meubles et vous avez productFactory. Donc productFactory c’est ce qui permet d’instancier vos classes tout simplement. Vous choisissez de renseigner le type de produit donc chaise, table, meuble, sofa et là, vous instancier la classe directement donc en direct en fait vous récupérez la classe. Si la classe existe vous faites une nouvelle instanciation de la classe avec la référence et le modèle donc instanciation de la bonne classe, pile poil ici. Sinon, vous générez une exception, création impossible de la classe. Et là, vous avez le contrôleur qui va gérer la construction de vos classes. Donc là, vous avez juste à renseigner le type de produit, bien évidemment vous pouvez donner d’autres paramètres, moi j’ai généré aléatoirement la référence et le nom du modèle donc ça, ça peut être très intéressant pour vous, pour générer une chaîne de caractères aléatoirement avec une longueur, ou un nombre, générer un nombre aléatoirement pareil avec une longueur. Très, très, pratique ces fonctions donc c’est cadeaux avec ce cours donc tout simplement vous appelez product Factory, vous faîtes un build avec le type de produit donc le type de produit c’est chaise, table, meuble, sofa, tout simplement. Et vous transmettez les paramètres de la classe à créer. Concrètement, comment ça s’utilise ? C’est très, très, simple. Vous fait un productController.create chaise,  vous dites, moi je veux une chaise, ajouter une chaise dans vos magasins, et ça va vous créer ça vous renvoi la classe productChaise tout simplement. Vu que toutes les classes étendent product, vous avez ses méthodes disponibles. Donc les méthodes getType pour récupérer le type de produit, son modèle, sa référence. Pour créer un sofa on peut rajouter également la création d’une table, une table, voilà, donc il est aussi facile que ça à utiliser le modèle de conception fabrique create chaise, create sofa, create table. Bien évidemment, je vous le répète ces paramètres, vous pouvez les transmettent dans create et après dans productFactory.build, ici, vous les utiliser automatiquement. Donc qu’est-ce que ça donne et bien une chaise avec le nom du modèle on va dire à la Ikea, et une référence. Pareil, un sofa et une table et vu que les chaînes sont aléatoires vous remarquez qu’elles changent à chaque fois que je recharge la page. Donc voilà, c’est aussi simple que ça d’utiliser le modèle de conception fabrique, une chaise, le sofa la table, donc c’est royal comme modèle de conception il va vous simplifier la vie puisqu’au lieu de faire new productChaise, new productTable, new productMeuble en fonction du type de produit que vous voulez créer, et bien non, vous dites, moi je veux une chaise et là vous pouvez transmettre le modèle la référence et c’est fait pour récupérer votre instance.

Donc maintenant c’est à votre tour de jouer, donc pensez au modèle de conception fabrique en amont de la création de vos classes c’est à dire si que vous avez plusieurs classes, une instanciation de ces classes qui utilisent la même classe abstraite qui implémente la même interface, pensez au modèle de conception fabrique.

Votre plan d’actions

Alors votre plan d’action pour ce cours, déjà commencer à mieux appréhender le modèle de conception fabrique, utilisez le volontairement dans certaines de vos applications pour comprendre son principe de fonctionnement et assimiler son utilisation et si vous avez besoin d’instancier une classe sans connaître son type donc des classes qui implémentent la même interface ou qui étendent la même classe abstraite, pensez à utiliser le modèle de conception fabrique. Sous ce cours vidéo vous retrouverez le code source de l’exemple à télécharger que vous pouvez réutiliser dans votre code, dans vos applications, si vous avez des questions posez-les directement à l’équipe développement facile. Maintenant je vous invite à regarder la deuxième vidéo, pour cela il suffit de cliquer sur la banière, le lien ici cliquez ici pour lancer la deuxième vidéo et dans la deuxième vidéo vous allez découvrir comment développer deux à trois fois plus rapidement avec PHP 5, des stratégies développement avancées en PHP 5 par exemple pour éliminer complètement les bugs de vos applications, pour travailler en équipe, pour faciliter le développement de vos applications, faciliter l’intégration de nouvelles fonctionnalités mêmes plusieurs mois. Tout ça je vous explique vraiment tout ça dans le détail dans la deuxième vidéo. Cliquez simplement sur la bannière, sur le lien lancer la deuxième vidéo. Moi, je vous retrouve tout simplement dès maintenant dans la deuxième vidéo, à tout de suite.

[/ppmtoggle][/ppmaccordion]

Télécharger le code source du modèle Factory implémenté en PHP

Retrouvez le code source commenté du modèle de conception factory implémenté en PHP.

Téléchargement du code source 07-Factory

Cliquez ici pour télécharger le code source 07-Factory

Avez vous déjà utilisé le modèle de conception Factory ?

Utilisez la zone commentaire pour venir présenter vos cas d’utilisation du modèle de conception Factory.

 

EXCLUSIF : Les 7 Secrets Révélés de JavaScript pour Créer VOS Applications — dès la semaine prochaine !

EXCLUSIF : La formation « JavaScript Facile » OFFERTE pour Créer VOS Applications — dès la semaine prochaine !

EXCLUSIF : Créez VOS Applications JavaScript — en moins de 7 jours grâce à notre formation OFFERTE « JavaScript Facile »

Que diriez-vous de Développer des Applications JavaScript Performantes — dès la semaine prochaine ?

TÉLÉCHARGEZ : Les codes sources du livre « JavaScript Facile » pour Créer VOS Applications — dès la semaine prochaine !

Cliquez ici pour tout recevoir >>