Dans ce nouveau cours sur le développement PHP 5 avancé avec les modèles de conceptions, découvrez le pattern Proxy.
Ce modèle de conception sert d’interface à un nouvel objet en fournissant un nouvel objet qui implémente les mêmes méthodes. Ce nouvel objet va agir comme un filtre ou comme un proxy.
Tout est dans la vidéo ci-dessous.
[ppmaccordion][ppmtoggle title= »Afficher le texte de la vidéo »]
La technique pour utiliser le pattern Proxy en développement PHP avancé
Bonjour à tous et bienvenu sur Développement Facile.
On continue le développement PHP 5 avancé avec les modèles de conceptions, dans ce nouveau cours, vous allez découvrir le modèle de conception proxy, un modèle de conception que vous avez peut-être déjà utilisé sans le savoir, un modèle de conception qui peut être combiné avec d’autres modèles de conceptions, c’est un modèle de conception qui revient aussi très souvent, c’est partit pour découvrir proxy et comment l’utiliser dans vos applications.
Le modèle Proxy
Le modèle de conception proxy sert d’interface à un objet en fournissant un objet proxy qui implémente les mêmes méthodes, c’est-à-dire vous accédez pas directement à cet objet, vous passez par un proxy qui fait un petit peu un filtre, donc justement le proxy, comme son nom l’indique, si vous connaissez les proxy sur Internet vous passez par un serveur intermédiaire avant d’accéder à votre site Internet, donc par un proxy qui s’occupe lui d’interroger le site Internet et de vous renvoyez les données, le modèle de conception proxy c’est exactement la même chose, le proxy il va contrôler l’accès à votre objet, vous avez votre objet ici, votre proxy ici, vous vous interagissez avec le proxy qui est là, les méthodes du proxy, et cette proxy qui communique directement avec l’objet, cela permet de fournir des données quand elles se situes dans un emplacement distant, donc par exemple avec du remoting, d’accéder à un proxy distant ou alors vous pouvez limiter le besoin des ressources pour les objets consommateurs en mettant en cache les données déjà utilisées en utilisant un proxy virtuel, on appelle comme ça.
Pour mettre le modèle de conception proxy en place, c’est vraiment très simple, vous devez instancier deux classes, la classe originale et l’autre en tant que proxy et ces deux classes implémentent la même interface et possèdent des méthodes identiques, le proxy peut posséder un peu plus de deux méthodes, ça dépend comment vous souhaitez contrôler l’accès à votre objet via la classe proxy.
Exemple pratique
On va tout de suite passer à un exemple de code source, vous allez voir ça va beaucoup plus vous parler, c’est parti.
Alors la mise en place du pattern proxy est également relativement simple, vous avez un livre, une classique livre, donc ça présente un livre, le but de cet exemple c’est de créer une petite bibliothèque et juste à la fin de cet exemple je vous conseillerais une implémentation un peu plus évoluée, d’ailleurs vous allez sûrement le découvrir pendant la présentation de cet exemple. Vous avez un livre avec un auteur, vous pouvez rajouter un nombre de page etc. un numéro d’édition, de version, le constructeur récupérer l’auteur avec une méthode get auteur pour le titre, get auteur and title ça permet de récupérer une phrase toute prête. Vous avez la gestion de la liste de livres donc c’est écrit style bibliothèque collection de livre, rappelez-vous dans le cours précédent, vous avez découvert le modèle de conception collection, donc là vous pourriez très bien implémenter le pattern collection cumulé avec le pattern proxy, on peut mettre en place plusieurs modèles de conceptions, donc là j’ai juste mis le pattern proxy pour pas vous mélanger mais ici vous pouvez très bien bookList, étendre un pattern de collection itérateur, tout simplement le pattern itérateur on pourrait l’utiliser dans ce cas-là. Là pour récupérer le nombre de livres de la bibliothèque, pour mettre à jour le nombre de livres dans la bibliothèque, vous voyez on doit faire des fonctionnalités en plus, si vous aviez le pattern itérateur ou collection, vous auriez pas besoin de faire ça par ce que c’est fait automatiquement par le pattern, pour récupérer un livre à partir son identifiant, pour ajouter un livre dans la collection donc là vous devez mettre à jour le nombre de livres dans la collection, il y a tout un tas de choses que le pattern itérateur vous simplifie grandement la vie quoi, tout simplement, là, pour supprimer un livre également vous devez faire ça, alors que le pattern itérateur le gère de lui-même et ensuite, vous avez votre proxy donc le proxy qui gère les accès à la bibliothèque donc vous avez les méthodes pour accéder à votre proxy donc vous vous embêtez pas, getBookCount, vous n’avez même pas à créer l’objet book liste, c’est proxy qui va le créer pour vous, vous avez juste à appeler le proxy, ajouter des livres dans votre bibliothèque, récupérer des livres quand vous souhaitez les manipuler, les afficher ou supprimer les livres, le proxy s’occupe de la création de l’objet correctement, il va vous renvoyer le nombre de livres, pour ajouter un livre de créer l’objet ensuite d’ajouter le livre, tout simplement pareil pour récupérer un livre par son id, donc de créer la bibliothèque ça renverra mieux si on a créer la bibliothèque évidemment, pareil pour enlever un livre, donc c’est vraiment génial vous vous ne vous occupez de rien du tout, vous utilisez le proxy, c’est lui qui va justement créer la bibliothèque, qui va s’occuper d’appeler les méthodes de book liste, de votre classe book liste se votre bibliothèque donc votre exercice à la fin de ce cours, c’est de transformer la classe book liste pour qu’elle utilise le pattern itérateur et ça va encore plus simplifier votre classe. Comment on l’utilise ? On fait un new proxy book liste, on crée notre proxy ici, tout simplement, là c’est un proxy très simple des fois vous avez des proxy, vous allez rencontrer dans vos applications des proxy beaucoup plus compliqués, je vous en présenterai des proxy plus compliqués dans les cours, ces prochains mois, ces prochaines semaines, donc vous créez un nouveau livre et vous les ajoutez donc là on ajoute deux livres dans votre bibliothèque, on affiche le nombre de livres on affiche le livre à la position une, on supprime un livre, donc on va supprimer le livre PHP facile, on réaffiche le nombre de livres de la bibliothèque qui sera mise à jour, et on réaffiche le livre à la position une, et vous allez voir la subtilité, alors qu’est-ce qui se passe ?
Il y a deux livres dans la bibliothèque le livre à la position une c’est PHP facile de Matthieu, on supprime un livre ici, donc le livre il en reste plus qu’un dans la bibliothèque et on affiche le livre à la position une c’est JavaScript facile, dans une bibliothèque position, à chaque fois que vous ajoutez un livre, ça prend des positions, position une c’était PHP, vous avez ajouté un deuxième livre c’était à la position deux, mais dans une bibliothèque quand vous supprimez un livre, évidemment les autres sont décalés et prennent la position des autres livres tout simplement, c’est pour ça que, à la position une vous avez JavaScript facile parce que ici le livre PHP facile a été supprimé.
Le pattern proxy très pratique ça permet d’accéder à un objet sans avoir à le gérer, vous accédez à la classe book liste donc un objet book liste sans avoir à le gérer, c’est proxy qui le gère pour vous, qui s’occupe de créer les instances, d’appeler les bonnes méthodes et de mettre à jour l’objet book liste. Voilà une démonstration du pattern proxy donc c’est à vous de l’utiliser et comme je vous l’ai dit complétez cet exemple en ajoutant le pattern itérateur sur la classe book liste ça va vous apprendre à faire fonctionner des modèles de conceptions entre eux, dans les prochaines semaines vous allez découvrir le modèle de conception MVC modèlent vue contrôleur qui lui cumule plusieurs modèles de conceptions, il y a singleton, commande, observer, il y en a plusieurs, commencez dès maintenant à cumuler, à mettre en fonctionnement plusieurs modèles de conceptions.
Maintenant c’est à vous de jouer, commencez par améliorer l’exemple que je vous ai fourni en créant une interface pour proxy et pour la classe utilisée par le proxy, vous créez une interface en PHP donc une interface, ça lie toutes les méthodes en gros et vous implémentez cette interface dans le proxy, dans la classe utilisée par proxy, l’interface ça vous assure que vous avez les méthodes qui correspondent entre le proxy et la classe appelée par le proxy, très important et vous pouvez aussi sécuriser la création de votre proxy et de la classe associée grâce à une interface parce que vous savez que dans le proxy à chaque fois que vous appelez une méthode elle sera forcément présente, en tout cas reliée à l’objet géré par le proxy, donc très intéressant.
Votre plan d’actions !
Alors votre plan d’action maintenant vous avez un nouveau modèle de conception à votre disposition qui permet de contrôler l’accès à vos objets donc pensez à utiliser modèle de conception proxy quand cela est nécessaire, sous cette vidéo vous avez le code source en téléchargement donc téléchargez le, utilisez le, si vous avez des questions posez les directement sous ce cours vidéo l’équipe développement facile vous répondra, maintenant je vous invite à regarder la deuxième vidéo, donc cliquez simplement sur la bannière, sur le lien la juste au-dessus de moi lancez la deuxième vidéo et dans la deuxième vidéo vous allez aller beaucoup mais alors beaucoup plus loin dans la création d’applications performantes avec PHP 5, vous allez découvrir des méthodes de développement avancées qui vous permettent de créer des applications deux à trois fois plus rapidement avec PHP, vous allez apprendre à travailler en équipe, vous saurez éliminer complètement, dire adieu à tous les bugs de vos applications PHP car vous allez les détecter en amont, et grâce à la méthode développement facile, vous allez limiter fortement l’apparition de bug c’est très important, ce sera vraiment très simple pour vous de reprendre des applications de vos collègues qui ont utilisés la méthode développement facile ou d’implémenter des nouvelles fonctionnalités dans des applications deux semaines, deux mois, six mois après parce que la méthode développement facile elle est toujours identique et donc ce sera très facile de plugger des nouvelles fonctionnalités à une application. Je vous explique tout ça dans le détail dans la deuxième vidéo donc cliquez simplement sur la bannière, le lien ici, lancez la deuxième vidéo, je vous retrouve tout de suite dans la deuxième vidéo à tout de suite.
[/ppmtoggle][/ppmaccordion]
Télécharger l’exemple d’implémentation du modèle Prox en PHP
Retrouvez le code source commenté de l’implémentation du modèle de conception Proxy en PHP
Téléchargement du code source 08 - proxy
Avez vous déjà utilisé le modèle de conception Proxy ?
Posez vos questions sur le modèle de conception Proxy dans la zone commentaire.