La parole est aux speakers : Lior Chamla

Publié le

Jusqu’à l’AFUP Day 2021, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils ou elles aborderont lors de leur conférence !

La conférence

Le monde merveilleux des conteneurs d'injection de dépendances

Quand on se lance dans la programmation orientée objet et que l’on souhaite respecter le principe de responsabilité unique et d’inversion de contrôle, on peut se retrouver rapidement en difficulté avec le nombre croissant de classes et de dépendances, et construire un objet peut devenir assez complexe.

Pour ce sortir de cet enfer des dépendances, nous avons recours aux conteneurs d’injection. Le but de la conférence est donc d'expliquer les fondements du Conteneur d'Injection de Dépendances avec ses avantages et ses inconvénients, tout en égrainant des conseils sur les bonnes pratiques de programmation orientée objets.

Rennes
28/05/2021
15:15-15:55

À ta connaissance, est-ce qu’il existe des frameworks sans conteneur d’injection de dépendances ?

Les seuls frameworks que je connaisse actuellement sont Symfony, Angular et Laravel dans une moindre mesure, tous sont munis de mécanismes très poussés d’injection de dépendance permettant de configurer tantôt un Container, tantôt des Injecteurs. Le principe reste globalement le même pour le/la développeur·euse qui s’en sert : obtenir un objet construit à la demande dans une classe via son constructeur même s’il y a des subtilités (injection par setter ou même directement dans une propriété). De ce que j’en connais, CodeIgniter (assez utilisé par les juniors qui veulent se mettre au développement PHP sur un framework simple à mettre en œuvre) ne possède pas de mécanisme d’injection de dépendances mais plutôt un système à la Service Locator (une classe centrale à qui on peut demander d’instancier des services à la demande).

L’avantage c’est qu’il existe (et ce n’est pas nouveau) des packages open source qui permettent de mettre en place ce concept dans n’importe quelle application PHP : Pimple (qui avait été utilisé dans Silex mais qui est désormais abandonné il me semble), PHP DI et bien évidemment le composant Dependency Injection de Symfony !

Peut-être que ma future conférence permettra à des gens qui ne comprennent pas forcément l’utilité ou le fonctionnement de ces containers de s’y intéresser et même de les utiliser !

Qu’est ce qui t’a fait t’orienter vers la formation ?

J’ai établi l’objectif de devenir formateur à l’âge de 19 ans en 2005 (en bac+2), j’étais dans une promotion « sans prof » où on pariait sur notre autonomie, et j’avais à « former » mes camarades qui parfois n’avaient tout simplement pas envie de bosser certains sujets. Assez impressionné par le fait qu’ils arrivaient souvent à faire illusion auprès du responsable pédagogique qui venait chaque vendredi après-midi vérifier que les savoirs étaient acquis, j’ai compris que j’avais des facilités pédagogiques, assez d’empathie pour comprendre et faire comprendre. J’aimais ça et je décidais d’en faire mon métier dans un lointain futur.

Évidemment, avant d’être formateur, il me fallait acquérir de l’expérience et des armes conceptuelles tant pendant mon Master qu’en entreprise, puis en tant que développeur freelance, puis en tant que co-gérant d’une SARL et enfin en tant que formateur freelance. Depuis 2018, une majorité de mon chiffre d’affaires est issue de la formation. J’ai donc mis une bonne douzaine d’années à atteindre l’objectif que je m’étais fixé à l’époque ! Et ça en valait la peine !

Tu sembles prendre plaisir à accompagner les débutants dans leur auto-formation : qu’est-ce qui te motive dans ce partage ?

On n’imagine pas le plaisir que peuvent procurer les yeux d’une personne qui ne comprenait pas quelque chose et qui tout à coup s’allument, après que le cerveau ait finalement fait tous les liens et ait percuté une notion ou une technique.

En 2016, alors que mon activité de formation depuis 2009 ne me prenait que quelques jours par an, j’ai exécuté ma toute première formation longue avec des chômeurs en reconversion. J’avais un objectif motivant de retour à l’emploi pour des gens qui l’avaient perdu/quitté depuis parfois plusieurs années : j’ai été traumatisé par le fait qu’au bout de 3 mois, alors qu’ils n’avaient absolument pas toutes les billes nécessaires selon moi pour être réellement employables, on allait les laisser dans la nature.

L’hétérogénéité des profils, le fait qu’ils partent tous de zéro, font que seuls les plus débrouillards (on dit souvent « 1/3 des étudiants finiront en emploi ») s’en sortent vraiment. Dans ce genre de formations, le temps file beaucoup trop vite et j’ai eu envie de donner à ces étudiants des ressources supplémentaires. J’ai donc créé une chaîne YouTube qui à la base n’était destinée qu’à « mes » étudiants, mais elle a connu un boom incroyable après la publication de 4 vidéos sur Symfony (dont les étudiants n’avaient qu’entre 2 jours et une semaine pour l’apprivoiser, et soyons honnête, n’y comprenaient pas grand chose). À l’époque je connaissais mal le framework, mais juste assez pour pouvoir faire comprendre les choses basiques aux étudiants.

Devant le succès de ces contenus et le nombre incroyable de commentaires qui me demandaient d’aller plus loin sur tel et tel sujet, j’ai décidé de créer une formation en ligne qui a très bien marché. C’est en créant cette formation que j’ai finalement le plus appris sur le framework et ses subtilités. Depuis j’en ai fait mon principal métier : formateur en ligne, sur des contenus gratuits (YouTube) et payants.

En poursuivant votre navigation sur ce site, vous acceptez l’utilisation des cookies pour améliorer votre navigation. plus d'infos

1. Qu’est-ce qu’un cookie?

Un Cookie est un petit fichier texte enregistré sur votre terminal (ordinateur, tablette, smartphone, etc.), à l’occasion de la consultation d’un service en ligne grâce à votre logiciel de navigation. Il permet à son émetteur d’identifier le terminal dans lequel il est enregistré, pendant la durée de validité ou d’enregistrement du Cookie. Lors de la consultation de notre site Internet, des informations relatives à la navigation de votre terminal sont susceptibles d'être enregistrées dans ces fichiers dits "Cookies". Ces derniers sont installés sur votre terminal, sous réserve des choix que vous auriez exprimés concernant les Cookies et que vous pouvez modifier à tout moment.

2. A quoi servent les cookies émis sur notre site ?

Seul l’émetteur d’un cookie est susceptible de lire ou de modifier les informations qui y sont contenues.
Les cookies utilisés sur notre site permettent :

3. Vos choix concernant les cookies

Vous disposez de différents moyens pour gérer les cookies. Tout paramétrage que vous pouvez entreprendre sera susceptible de modifier votre navigation sur notre site et sur Internet en général et vos conditions d'accès à certains services de notre site nécessitant l'utilisation de cookies. Vous pouvez à tout moment exprimer et modifier vos souhaits en matière de cookies, par les moyens décrits ci-dessous. L'accord sur les cookies L'enregistrement d'un cookie dans un terminal est essentiellement subordonné à la volonté de l'utilisateur du terminal, que celui-ci peut exprimer et modifier à tout moment et gratuitement à travers les choix qui lui sont offerts par son logiciel de navigation. Si vous avez accepté dans votre logiciel de navigation l'enregistrement de cookies dans votre terminal, les cookies intégrés dans les pages et contenus que vous avez consultés pourront être stockés temporairement dans un espace dédié de votre terminal. Ils y seront lisibles uniquement par leur émetteur.

Le refus des cookies Si vous refusez l'enregistrement de cookies dans votre terminal, ou si vous supprimez ceux qui y sont enregistrés, vous ne pourrez plus bénéficier d'un certain nombre de fonctionnalités qui sont néanmoins nécessaires pour naviguer dans certains espaces de notre site. Tel serait le cas si vous tentiez d'accéder à votre compte ou à votre abonnement qui nécessite de vous identifier. Tel serait également le cas lorsque nous, ou nos prestataires, ne pourrions pas reconnaître, à des fins de compatibilité technique, le type de navigateur utilisé par votre terminal, ses paramètres de langue et d'affichage ou le pays depuis lequel votre terminal semble connecté à Internet. Le cas échéant, nous déclinons toute responsabilité pour les conséquences liées au fonctionnement dégradé de nos services résultant de l'impossibilité pour nous d'enregistrer ou de consulter les cookies nécessaires à leur fonctionnement et que vous auriez refusés ou supprimés. Les choix offerts par votre logiciel de navigation Vous pouvez configurer votre logiciel de navigation de manière à ce que des cookies soient enregistrés dans votre terminal ou, au contraire, qu'ils soient rejetés, soit systématiquement, soit selon leur émetteur. Vous pouvez également configurer votre logiciel de navigation de manière à ce que l'acceptation ou le refus des cookies vous soient proposés ponctuellement, avant qu'un cookie soit susceptible d'être enregistré dans votre terminal. Pour la gestion des cookies et de vos choix, la configuration de chaque navigateur est différente. Elle est décrite dans le menu d'aide de votre navigateur, qui vous permettra de savoir de quelle manière modifier vos souhaits en matière de cookies. Selon votre navigateur, consultez le lien ci-dessous pour configurer votre navigateur et refuser les cookies :