Aller au contenu

Utilisez le pattern Itérateur pour simplifier votre développement PHP avancé

Découvrez le modèle de conception Itérateur implémenté en PHP.

Le modèle Itérateur permet de naviguer dans une collection d’objets indépendamment du reste de l’application.

Tout est expliqué dans la vidéo ci-dessous.

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

Utilisez le pattern Itérateur pour simplifier votre développement PHP avancé

Bonjour à tous et bienvenu sur développement facile.

On continu ensemble la découverte des modèles de conceptions pour du développement PHP 5 avançé tout ça accumulé avec de l’HTML 5.

Dans cette nouvelle vidéo vous allez découvrir un modèle de conception que vous allez retrouver également assez souvent, il s’agit du modèle itératif.

Le Modèle Itérateur

Alors qu’est-ce le modèle de conception itérateur ? a quoi il sert ? comment l’implémenter dans votre code, dans vos applications ? C’est ce que vous allez découvrir dès maintenant.

Alors le modèle de conception itérateur permet de naviguer dans une collection d’objets ou une liste d’éléments sans montrer au reste de l’application comment est constituée cette liste. En gros vous avez une collection qui contient plusieurs objets du même type, de types différents et vous allez pouvoir naviguer dans cette collection d’objets mais sans connaître,  savoir comment est créer cette liste, comment elle est constituée. Vous avez juste à utiliser des méthodes pour accéder aux objets cette liste, rajouter des objets, en supprimer c’est aussi simple que ça. Donc l’avantage du modèle de conception itérateur c’est ce qu’il permet de séparer la création d’une liste, du traitements de celle-ci. Je vous conseil toujours avec la méthode de développement facile de séparer le traitement, la création, les interfaces, de séparer le code et les rendre un petit peu indépendante les unes des autres justes relier par des communications, pour échanger les informations qui sont nécessaires. Donc avec itérateur, vous allez séparer la constitution de votre collection, du traitement de celle-ci et vous allez apporter une méthode générique quelque soit la manière dont est constitué cette liste. Les modèles littérateurs contient à peu près trois quart du temps c’est toujours les mêmes méthodes donc quelques soit le langage c’est push toujours next toujours ces méthodes la. Et ça vous permet de naviguer dans la collection et de la modifier. Donc ce modèle de conception itérateur apporte une sécurité pour parcourir les éléments de cette collection donc PHP de base propose plusieurs classes itérateur qui implémentent l’interface itérateur. Vous avez par exemple ArrayIterator pour naviger à l’intérieur d’un tableau DirectoryIterator, NoRewindIterator etc. etc. donc comme je vous l’ai dit pour résumé et le modèle de conception itérateur permet de parcourir n’importe quel type d’objet avec des méthodes connues. Donc cet objet doit implémenter l’interface itérateur bien évidemment et je vous l’ai dit dans ce cours, je l’ai utiliser sans faire attention c’est que vous entendrez souvent parler du parcours d’une collection d’objets. Parcourir une collection avec itérateur.

Exemple pratique

Donc on passe tout de suite à l’exemple de code source, la mise en place du modèle de conception itérateur pour parcourir une collection donc les livres d’une bibliothèque. Alors voici l’exemple de code source du pattern itérateur c’est-à-dire le parcours d’une collection. Donc c’est ExempleData la classe qui gère la collection alors je vous montre comment on l’utilise et ensuite l’implémentation des différentes méthodes. Donc vous l’instanciez, vous ajouter des éléments, vous faites un affichage, vous pouvez ajouter d’autres éléments, ça ça permet de parcourir la collection donc c’est hyper simple, hyper rapide, comme élément vous pouvez mettre des objets là, j’ai mis des simples chaînes de caractères pour ce soit plus simple pour l’exemple évidemment mais vous pouvez carrément mettre des objets plus ou moins complexe selon les besoins de votre application donc là on se place au début de la collection donc sur le premier élément tant qu’il y a des éléments valides on les affiche, donc là on récupère un objet en fait, moi c’est des chaînes de caractères donc c’est directement affichable mais si vous récupérez un objet, vous pouvez appeler ses propriétés et ses méthodes et la vous passez à l’élément suivant c’est à dire qu’en trois lignes de code vous parcourez votre collection qu’elle soit complexe avec des objets ou simple avec des chaînes de caractères vous pouvez enlever un élément en passant l’élément concerné donc là c’est une chaîne de caractère ou l’objet lui-même, vous vous placez sur le premier curseur et vous faites l’affichage.

Alors comment ça s’intègre. C’est relativement simple vous avez un tableau un array qui contient tous les éléments de votre collection donc ça peut être des objets ou des chaînes de caractères et un index pour savoir où vous êtes positionnés dans votre collection, sur le premier élément, sur le troisième, sur le sixième, sur le dernier et vous avez les méthodes l’ajout d’un élément c’est aussi simple que ça que ce soit un objet ou ce que vous voulez. Pour enlever un élément on fait un array_search on recherche l’élément, l’objet dans le tableau une fois qu’on l’a trouvé, on le supprime, mais vu que ça fait un trou dans votre collection donc un emplacement vide et bien il faut le combler . en déplaçant les éléments qui sont après donc on se positionne sur l’élément courant dans notre clé on passe à l’élément suivant, on parcours tout notre tableau donc toute notre collection tant qu’il y a des éléments valides et on revient, on déplace l’élément actuel sur l’emplacement précédent donc là on est sur l’emplacement vide, puisqu’on vient de le supprimer, et là, sur l’élément juste après donc on le déplace sur l’emplacement vide on passe à l’élément suivant dans l’emplacement suivant on déplace, on déplace, on arrive sur le dernier élément et bien le dernier élément on va le supprimer tout simplement. Là, ça renvoi l’élément courant ça permet de passer à l’élément suivant, ça permet de définir la position actuelle de la clé dans la bibliothèque donc vous pouvez récupérer …. non pardon, là, c’est pour définir la position actuelle de la clé dans la bibliothèque.  ça va vous permettre de récupérer … je vais rajouter une option l’élément …. je vais renvoyer l’élément courant getElementByKey voilà … et je vais le rajouter, renvoie l’élément positionner sur cette clé. Donc vous définissez une clé, positionner votre clé dans la collection et ça vous renvoi l’élément courant sur cette clé très, très, très, pratique, ça c’est pour récupérer la position actuelle de la clé et là valide c’est pour vérifier l’existence de l’élément courant tout simplement. Là, vous vous positionnez au début de votre collection et là ça permet d’inverser la collection donc l’ordre des éléments de votre collection est complètement inversée. Donc vous voyez c’est très simple d’implémenter le Patten itérateur donc là j’ai implémenté iterator donc là, y’a les fonctions disponibles donc j’ai implémenté différentes méthodes pour parcourir un objet et voilà c’est un add un remove donc ça c’est très important current, l’élément courant, passer à l’élément suivant, récupérer la position actuelle de la clé, définir une clé récupérer l’élément positionner sur cette clé, est-ce que l’élément est valide ? inverser la liste, et se positionné sur l’élément. Donc qu’est-ce que ça donne ? et bien là de base il y a ça, jusqu’à élément cinq, on ajoute d’autres éléments donc 69 jusqu’à 10 on supprime l’élément 69. Vous remarquer que jusqu’à cinq il était là il a été supprimé et tous les autres éléments ont été déplacé dans la collection et l’élément 10 a bien été supprimé pour éviter qu’il soit en double, donc là, c’est une implémentation du Patten itérateur donc vraiment il s’implémente très facilement et il est très très pratique. Regardez l’ajout d’éléments est très simple, le parcours des éléments est très simple la suppression d’un élément très simple, et de nouveau le parcours d’un élément.

Donc maintenant c’est à vous de jouer, voici un exercice pour vous permettre de bien comprendre le modèle de conception itérateur et d’être capable de l’utiliser de l’implémenter dans vos applications. Donc l’exercice c’est implémenté le modèle itérateur sur un de vos objets. Vous prenez une de vos applications, un objet qui représente une collection, qui contient un tableau qui contient une collection d’objets et vous implémenter le modèle de conception itérateur tout simplement.

Votre plan d’actions

Donc maintenant, c’est à vous de jouer, donc commencez à appréhender le modèle de conception itérateur, à l’utiliser dans vos applications donc dès vous avez une collection d’objets à gérer une collection donc plusieurs objets comme une bibliothèque de livres ou je ne sais pas dans un jeu des niveaux enfin il y a des collections souvent dans des  applications complexes, pensez à utiliser le modèle de conception itérateur. Vous retrouverez sous cette vidéo le code source complet en téléchargement, Si vous avez des questions posez-les également sous ce cours vidéo; l’équipe développement facile vous répondra. Maintenant je vous invite à regarder la deuxième vidéo dans la deuxième vidéo vous allez aller beaucoup plus loin avec le langage PHP 5 c’est à dire juste au-dessus de moi vous avez une bannière, une image, un lien cliquez ici pour lancer la deuxième vidéo et dans la deuxième vidéo vous allez aller beaucoup plus loin avec des stratégies très précises en utilisant les modèles de conceptions avec PHP 5 pour créer des applications deux à trois fois plus rapidement des applications qui restent stables, vous allez découvrir des méthodes pour éliminer les bugs fatales définitivement de vos applications vous apprendrez également à travailler en équipe donc tout ça c’est dans la deuxième vidéo cliquez simplement sur le lien, sur la bannière, lancer la deuxième vidéo. Je vous retrouve tout de suite dans la deuxième vidéo pour tout vous expliquer dans le détail donc, à tout de suite.

[/ppmtoggle] [/ppmaccordion]

Télécharger l’exemple de modèle Itérateur en PHP

Retrouvez le code source commenté sur le pattern Itérateur qui vous a été présenté dans la vidéo

Téléchargement du code source 06 - Itérateur

Cliquez ici pour télécharger le code source 06 - Itérateur

Posez vos questions sur le modèle de conception Itérateur

Utilisez la zone commentaire pour poser vos questions sur le modèle de conception Itérateur.

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 >>