Pu..ain, Lior ton stagiaire tu devrais en faire un sketch, un one man show, j'te jure je viens te voir tous les soirs...En tout cas trop cool d'entendre des bons gars comme toi. Et qui explique aussi bien. Signé Faridoun
Alléluia! C'est tellement clair, toutes les notions que j'ai appris mais ici expliqué étapes par étapes, le pourquoi du comment. En plus j'ai bien ri avec le stagiaire, sacré lui!
Eh bien… Il m'a baisé ! Ma trop faire rire. C'est exactement ce que j'aurais dit en moi-même si je devrais vivre ce cas. Merci pour tes cours, j'ai des connaissances plus avancées.. Mais étant autodidacte, cela me permet de mettre des noms, des mots, et de revoir mes logiques de codes. Big UP
Je crois que le mot "intégrité" (des données) serait mieux que "sécurité" pour décrire l'effet de l'encapsulation, mais à part ce détail, c'est une super vidéo, j'ai commencé avec la 1 qui est très bien, celle-ci est top, et j'enchaine directement avec la 3. :-)
Ben si tu la prends n'oublies pas le coupon de réduction dans la description :-) mais il faut que tu aies quand même bien en main les notions de programmation orientée objets :-)
On aurait pu aussi typé l’âge integer dès le début non ? Ici le principal problème c’est que tu ne dis pas à l’employé que l’âge est un integer dès le début dans le constructeur ( int $age) donc forcément ton stagiaire peut essayer de passer un String ou même un Boolean.
Oui oui oui depuis PHP 7 tu peux int. Mais pas avant, et pas dans tous les autres langages faiblement typés x: Et puis ça rendait caduque mon exemple :D
Bjr Lior. En suivant tes videos, je retape ton code. Dans mon cas, la ligne $employe1->age="Bonjour"; (vidéo à environ 5mn) qui doit provoquer une exception n'est pas prise en compte par l’éditeur (il me souligne "age" du moment qui est déclaré en private). Une nouvelle fonctionnalité de l'éditeur (vs code 1.85.1) ou ai je loupé qq chose ?
si enverifie que le nom commence par la premiere lettre majiscule est ce This->set($Nom) est valable dans le constructeur avec le teste dans la fonction set($nom) ?
Merci pour la clarté de votre explication J'ai une question : Ou est l'utilité de l'encapsulation alors que le stagiaire peut juste changer la variable age de Private à Public ? Merci d'avance
Bah on part quand même de l'idée que le stagiaire ou même tout autre personne qui "utilise" la classe ne la modifiera pas (ni même ne la supprimera :p)
Je ne sais pas pkoi je me reconnais dans ce stagiaire... Une vidéo parfaite, Merci ! Une petite question : le fait qu'on appel la méthode "setAge()" dans le constructeur avant que celle-ci soit réellement déclaré un peu plus bas n'est pas problématique ?
Pas vraiment, un test unitaire te permet de t'assurer qu'un code fonctionne bien comme il devrait, ici tu t'assures simplement qu'une donnée qu'on te passe est bien de telle ou telle nature :)
Javascript n'est pas un langage orienté objets. On peut bien sur trouver des alternatives avec les fonctions constructeurs et les prototypes mais c'est pas le but du langage JS. Par contre TypeScript c'est JS + Orienté Objet, ça t'irait surement mieux :)
Parce que tu vois mes vidéos APRES tes cours. Si tu avais vu mes vidéos en premier et tes cours ensuite, tu aurais trouvé tes cours beaucoup plus clairs ;)
salut tout le monde. des videos intéressantes sauf qu'à l'étape du stagiaire pour qui on doit sécuriser la classe , lui il a accés à tout le code donc il peut accidenter la classe n'importe où . Cet exemple a freiner ma compréhension.
Si tu utilises l'héritage et que setAge est redéfini plusieurs fois, quelle méthode set setAge va être appelée dans le constructeur pour ce langage? Et pour un autre langage? Pendant mes cours de POO, on nous avait toujours déconseillé d'appeler des méthodes dans un constructeur pour cette raison.
@@LiorCHAMLA Si setAge est présent dans une classe mère et est overridé dans une classe fille, est-ce que dans le constructeur de la classe fille, ça appellera la méthode de la classe fille et/ou celle de la classe mère? Selon le langage, la réponse ne sera pas forcément la même. En plus d'un point de vue conceptuel, ça consiste à manipuler un objet qui n'est pas encore construit.
@@0111-n1w A priori a moins que le langage ne soit complètement déglingué : quand tu construits un objet de ta classe fille, c'est la méthode de la fille (la surcharge) qui sera appelée. Sinon ça n'a aucun sens :x
@@LiorCHAMLA Normalement oui mais comme l'objet n'est pas créé, rien ne le garanti. Dans le paradigme, l'objet doit être créé avant qu'on l'utilise, d'autant plus avec une méthode publique. Un exemple en C++: class A { protected int i = 0; A(){ methode(); } public void methode(){ i = 1;} } class B : public A { B(): A(){} public void methode(){i = 2;} } B truc = new B(); int j = truc.methode(); Crois-tu que i sera égal à 1 ou 2 à l'instanciation? Et après le second appel à methode? C'est un exemple qu'on donne dans certaines écoles pour montrer qu'il est préférable d'éviter les appels de méthodes (surtout publiques) au sein d'un constructeur. Après le mec qui connait bien le langage, évidemment qu'il va trouver directe la valeur de i mais pour une personne moins expérimentée, genre le stagiaire, ça peut être la source d'une erreur facile d'où le fait de ne pas faire d'appels dans un constructeur; en plus de manipuler un objet non instancié. (Là pour ceux qui se demandent, la valeur de i est 1 à l'instanciation car c'est la méthode de la classe mère qui est appelée et non celle de la fille. La méthode n'est pas déclarée virtuelle. Or, lors de l'appel de la méthode dans le code, c'est la méthode de la classe fille qui est appelée donc la valeur de i sera 2 après ça. Si la méthode avait été virtuelle dès le début en effet la valeur aurait tout le temps 2.)
Je sais pas trop ce que tu entends par notifications instantanées mais si tu parles de Mercure y a des vidéos de Kevin Dunglas, son créateur, en veux tu en voilà :)
Bonjour, merci pour les vidéos, je les trouves vraiment très bien. J’ai une petite question : lorsque la souris passe sur une variable (entre autre) il y a une petite fenêtre qui apparait à côté avec des infos, est ce un plugin ? Si oui lequel ? Exemple vers 8min53 env Merci bien
Bonjour, excellente vidéo merci ! J’avais juste une question : pourquoi vous mettez tout à la fin de la vidéo dans la fonction construct this->setAge($age) au lieu de simplement mettre setAge($age) ? Car de toute manière en faisant appel à cette fonction elle renseignera le this->age
Parce que la fonction setAge contient une vérification que l'âge qu'on a passé est bien ce qu'on attend ! Il faut s'assurer que le développeur ne mette pas un âge trop élevé ou pas assez !
Du coup le getAge n'est pas obligatoire ? Même en private on peut afficher l'âge sans passer par le getter ? (dans ton exemple c'est le cas si j'ai pas raté un truc) Merci pour les cours ;)
Non, en private tu ne peux accéder à l'âge QUE DEPUIS L'INTERIEUR DE LA CLASSE OU EST DEFINIE $age :-) Tu ne peux pas faire $employe1->age (ni pour le lire ni pour écrire). Donc tu es obligé de dire $employe1->getAge()
Le type hinting (dire int devant $age) n'existe pas en php 5 et dans d'autres langages, mais oui dans l'idéal c'est ce qu'il faudrait faire. Et on throw une new Exception pour être sur que le code s'arrête bien ici et pas simplement un echo qui parfois ne se verrait pas forcément :-)
@@Ryu53898 Cadeau : www.php.net/manual/fr/functions.arguments.php#functions.arguments.type-declaration (pas pour les types primitifs comme int, float ou string). Je sais pas exactement ce que tu essayes de faire mais crois moi, j'ai fait du PHP 5 pendant des années et c'était la meilleure façon de comprendre les bienfaits d'avoir des setters / getters sur nos objets (même si ils ont aussi plein d'autres avantages). Donc oui pour les gens comme moi, le type hinting ça n'a pas aidé pendant plus de 10 ans. Mais oui aujourd'hui c'est ce qu'il faudrait faire. Est-ce que ça aiderait les gens qui regardent cette vidéo à comprendre l'encapsulation ? Pas vraiment.
En tout cas j’aime beaucoup t’as manière d’expliquer les choses.. pauvre stagiaire !!. Sinon typer la valeur int $age directement dans le constructeur ne suffirait pas à l’empêcher de passer une string à $age?
pas malpour reviser en ayant une nouvelle explication sur le monde de la poo qui n'est pas si simple... mais qu'est ce qui empeche le stagiaire de modifier la propriété en la remettant en public ? la classe de base, le stagiaire y bosse pas du tout, et travail dans une autre classe d'où il appelera les employees et leurs methodes...grace à l’héritage ou le fait d'etre dans le même package...je sais plus trop.
Ha ben ça y a rien qui empêche le stagiaire de modifier la classe Employe c'est sur, néanmoins il comprendra qu'il est à un niveau de modification qui a surement des implications "graves" du moins plus grave que simplement se tromper dans l'affectation d'une variable
Moi qui est fait du java sa fait bizarre que les variables ne soit pas typé en PHP sa eviterai de mettre le is_int en declarant directement int $age quoique je pense que dans PHP 7 cela est géré
@@LiorCHAMLA En revisionnant ta vidéo qu'est ce que tu le tue le stagiaire mdr "il m'a baisé mon projet procès au cul faillite on finis dans la rue en mode clochard". Je suis mdr
15:11 Je ne comprends pas trop pourquoi tu essaies de faire croire que grâce à la programmation orientée objet on peut vérifier la validité des donnés transmises (spoiler on peut le faire avec une simple fonction). Il ne faut pas inventer de faux arguments favorables à la POO quand son seul véritable intérêt est la lisibilité du code quand on bosse sur un gros projet et surtout qu'il est partagé. Vidéo assez intéressante néanmoins même si tu en fais des tonnes.
Merci c'est top ça nous donne envie de voir la suite. Est ce que vous ne pouvez pas mettre la vidéo tous les 3 jours parce que je trouve que vous mettez trop de temps à mettre la prochaine vidéo du coup on reste la à attendre.
Bah Ibrahim faut pas rester "là à attendre", faut trouver tes propres ressources, des tutoriels en ligne et d'autres vidéos qui vont t'aider à progresser ! La prochaine sortira mercredi il me semble :-)
@@LiorCHAMLA c'est ce que je fais je regarde d'autres tutoriels mais je trouve que les tiens sont très bien expliqué. Comme je t'expliqué j'ai déjà eu certaines expériences mais j'ai des lacune du coup j'ai hâte de voir comment on s'y prend pour développer de A à Z une application sans passer par les freemwork
Lior et le stagiaire une histoire sans fin :D
Pu..ain, Lior ton stagiaire tu devrais en faire un sketch, un one man show, j'te jure je viens te voir tous les soirs...En tout cas trop cool d'entendre des bons gars comme toi. Et qui explique aussi bien. Signé Faridoun
Je suis content d'être tombé dessus avant de commencer réellement la programmation orienté objet
Parfait
Très pédagogue !!! j'avais énormément de mal avec les classes mais grâce a ton cours c'est LIM PIDE!!!
Ptn mais c'est fou comment c'est trop bien expliqué l'un des meilleur formateur de France. Une tuerie !!!
Mais MERCI !
j'adore vous expliquez très bien c'est simple et très compréhensible , si j'arrive a maitrisé la poo ce sera grace a vous ! encore Merci
Merci :)
Il est bien têtu ce stagiaire ^^
Très pédagogue, j'adore !
Merci beaucoup :)
Un excellent formateur, vraiment!
Merci beaucoup :)
Encore bravo Monsieur Chamla, si tous les formateurs étaient aussi pédagogues, il y aurait bien plus de développeurs brillants.
Merci beaucoup !
Lior , merci est un petit mot devant les éclaircissements capitales dont tu nous gaves !!!
Merci beaucoup :)
Merci pour ce cours super bien expliqué, vraiment excellent 🙏
Bravo! Vos tutos sont constructifs, et aussi ... thérapeutiques ! De la POO en rire.
Procès, faillite, rue , clochard 😂😂😂
Bravo Lior 😍💥
Héhéhé :p
@@LiorCHAMLA
Alléluia! C'est tellement clair, toutes les notions que j'ai appris mais ici expliqué étapes par étapes, le pourquoi du comment. En plus j'ai bien ri avec le stagiaire, sacré lui!
Merci beaucoup :) Pauvre stagiaire oui ^^
Génial ! ça se voit que t'as de l'expérience. tu expliques vraiment bien ! merci :D
Merci beaucoup :)
Merci pour les explications.
merveilleux comme d habitude
Merci encore :p
Merci pour la vidéo, c'est toujours aussi simple a comprendre ça m'aide énormément, hâte de voir la suite, j'ai aussi acheter la formation Symfony...
Merci pour ta confiance sur la formation Symfony :-) j'espère qu'elle te mènera loin :-)
wooow, je kiff tes cours, un grand merci lior
Merci beaucoup :)
Chouettes les rappels réguliers !
Merci
Eh bien… Il m'a baisé ! Ma trop faire rire. C'est exactement ce que j'aurais dit en moi-même si je devrais vivre ce cas. Merci pour tes cours, j'ai des connaissances plus avancées.. Mais étant autodidacte, cela me permet de mettre des noms, des mots, et de revoir mes logiques de codes. Big UP
Vidéo par excellence pour les néophytes, excellente pédagogie, merci de partager votre savoir ;-)
Merci à toi Mary :p
merci infiniment pour cette formation s'il vous plait pouvez-vous nous faire un formulaire d'authentification en php poo
Un tuto vidéo à la sauce Lior ( tiens j'aime bien ce terme) c'est mieux qu'un tuto écrit. Bravo et vivement la prochaine.
Merci :)
Merci beaucoup !! Super video
excellent ce cour 👍
Merci Yoann :)
Merci Lior ! toujours au top tes vidéos !
Merci à toi :-)
ça ma aidé énormément
C'est super c'est exactement pour ça que je l'ai fait :p
Je crois que le mot "intégrité" (des données) serait mieux que "sécurité" pour décrire l'effet de l'encapsulation, mais à part ce détail, c'est une super vidéo, j'ai commencé avec la 1 qui est très bien, celle-ci est top, et j'enchaine directement avec la 3. :-)
Merci :)
Merci pour ces différents cours j'aimerais bien que vous faites en JS et Python aussi
Toujours excellent et limpide ! je vous recommande les vidéos Symfony.
Merci beaucoup Vincent :-)
Excellent chamla !
Merci beaucoup :)
Merci beaucoup !!!
Merci à toi :)
Exceptionnel ! ......
Merci ! :D
Merci Lior... Jusqu'à 120 ans ;-)
Merci encore :)
Incroyable! Un grand merci!💓
Merci à toi :)
Sublime!!!! merci beaucoup Lior !
De rien, merci à toi :)
Merci beaucoup pour cette série de vidéo!
De rien :)
Tes video sont superbes continue comme ca. Je me tate a prendre ta formation symfony ;)
Ben si tu la prends n'oublies pas le coupon de réduction dans la description :-) mais il faut que tu aies quand même bien en main les notions de programmation orientée objets :-)
cest top merci beaucoup lior j'ai rien a dire que "tu est le meilleur ""
Merci beaucoup 😊
merci pour ces tutos, ils sont bien expliqués
Merci beaucoup :)
On aurait pu aussi typé l’âge integer dès le début non ? Ici le principal problème c’est que tu ne dis pas à l’employé que l’âge est un integer dès le début dans le constructeur ( int $age) donc forcément ton stagiaire peut essayer de passer un String ou même un Boolean.
Oui oui oui depuis PHP 7 tu peux int. Mais pas avant, et pas dans tous les autres langages faiblement typés x: Et puis ça rendait caduque mon exemple :D
Le but c'est bien de montrer que le setter sert d'interface et de pare feu justement, même si depuis peu le langage nous aide avec le type hinting :)
Lior CHAMLA d’accord c’est pour l’exemple donc. Tu aurais pu le mentionner à la fin quand même je pense que c’est important 😊
J'suis d'accord, j'aurai du le dire :-)
Pouce bleu, abo. Vraiment pas mal !
Merci beaucoup :)
Merci pour ces piqures de rappel, je me rends compte que j'ai perdu les bases...
Merci à toi Julie :)
Merci encore
Merci à toi !
Le Netflix de la programmation
:D
Tellement clair ! 😍😍😍 Merciiiii
Merci :-)
Je débute dans le dev web j’espère que j’arriverai à expliquer de façon aussi claire que toi mon travail.
Je te le souhaite :)
Merde le stagiaire 🤣🤣. Merci pour ces tutos Liar 👌
Merci à toi :)
Au top, merci !
Merci à toi Alex :)
Super comme d’habitude :)
Merci
Merci infiniment pour la video. Fait attention à ton stagiaire!
Je fais tout pour qu'il ne pète rien :)
salut Proff je voudrais donnèes a mon constructeur un tableau avec des valeurs par defaut je voudrais une suggestion merci
Bjr Lior. En suivant tes videos, je retape ton code. Dans mon cas, la ligne $employe1->age="Bonjour"; (vidéo à environ 5mn) qui doit provoquer une exception n'est pas prise en compte par l’éditeur (il me souligne "age" du moment qui est déclaré en private). Une nouvelle fonctionnalité de l'éditeur (vs code 1.85.1) ou ai je loupé qq chose ?
Bonjour Lior j'aime bien tes vidéos je suis encore débutant dans la programmation quels sont langages que tu me conseille d'apprendre ?
PHP ou TypeScript :)
Bonjour,
Je voudrais savoir en Javascript, quel est le mot ou la syntax qui remplace "private" ?
Ca n'existe pas :)
je t'aime
si enverifie que le nom commence par la premiere lettre majiscule est ce This->set($Nom) est valable dans le constructeur avec le teste dans la fonction set($nom) ?
Non ça n'a rien à voir avec le nom de la variable, ça a à voir avec le CONTENU de la variable :x
Merci pour la clarté de votre explication
J'ai une question : Ou est l'utilité de l'encapsulation alors que le stagiaire peut juste changer la variable age de Private à Public ?
Merci d'avance
Bah on part quand même de l'idée que le stagiaire ou même tout autre personne qui "utilise" la classe ne la modifiera pas (ni même ne la supprimera :p)
Je ne sais pas pkoi je me reconnais dans ce stagiaire...
Une vidéo parfaite, Merci !
Une petite question : le fait qu'on appel la méthode "setAge()" dans le constructeur avant que celle-ci soit réellement déclaré un peu plus bas n'est pas problématique ?
Non, l'emplacement des déclarations de fonctions dans la classe ne change rien car PHP lit toute la classe avant même que tu l'utilises :)
Thanks
De rien merci à toi :)
Est ce que on peut appeler ça plus communément une forme de tests unitaires?..
Pas vraiment, un test unitaire te permet de t'assurer qu'un code fonctionne bien comme il devrait, ici tu t'assures simplement qu'une donnée qu'on te passe est bien de telle ou telle nature :)
merci lior
Merci à toi :-)
Bravo ! Vos explications sont Claires et precises... est ce que vous connaissez un bon livre traitant la POO en Javascript svp ?
Javascript n'est pas un langage orienté objets. On peut bien sur trouver des alternatives avec les fonctions constructeurs et les prototypes mais c'est pas le but du langage JS. Par contre TypeScript c'est JS + Orienté Objet, ça t'irait surement mieux :)
LIOR CHAMLA TU ES UN GARS BIEN
Le typage permet justement d empecher le "bonjour" non ?
Oui mais à l'époque de cette vidéo on ne pouvait pas typer les propriétés avec des types primitifs comme int ou float :p
merci beaucoup
De rien merci à toi, et n'hésites pas à partager :)
Bonjour très bien pour moi . :-)
Super ! Merci :)
Pourquoi tes vidéos sont plus claires et didactiques que mes cours ?
Parce que tu vois mes vidéos APRES tes cours. Si tu avais vu mes vidéos en premier et tes cours ensuite, tu aurais trouvé tes cours beaucoup plus clairs ;)
salut tout le monde. des videos intéressantes
sauf qu'à l'étape du stagiaire pour qui on doit sécuriser la classe , lui il a accés à tout le code donc il peut accidenter la classe n'importe où .
Cet exemple a freiner ma compréhension.
Pars du principe que le stagiaire a eu interdiction de modifier la classe, il ne peut que l'utiliser :)
@@LiorCHAMLA j'estime ta façon d'expliquer . de ma part je n'avais pas supposé que le fichier class et le fichier utilisateur devront etre séparés
Si tu utilises l'héritage et que setAge est redéfini plusieurs fois, quelle méthode set setAge va être appelée dans le constructeur pour ce langage? Et pour un autre langage? Pendant mes cours de POO, on nous avait toujours déconseillé d'appeler des méthodes dans un constructeur pour cette raison.
Ca appellera toujours le setAge de la classe que tu utilises :)
@@LiorCHAMLA Si setAge est présent dans une classe mère et est overridé dans une classe fille, est-ce que dans le constructeur de la classe fille, ça appellera la méthode de la classe fille et/ou celle de la classe mère? Selon le langage, la réponse ne sera pas forcément la même.
En plus d'un point de vue conceptuel, ça consiste à manipuler un objet qui n'est pas encore construit.
@@0111-n1w A priori a moins que le langage ne soit complètement déglingué : quand tu construits un objet de ta classe fille, c'est la méthode de la fille (la surcharge) qui sera appelée. Sinon ça n'a aucun sens :x
@@LiorCHAMLA Normalement oui mais comme l'objet n'est pas créé, rien ne le garanti.
Dans le paradigme, l'objet doit être créé avant qu'on l'utilise, d'autant plus avec une méthode publique.
Un exemple en C++:
class A {
protected int i = 0;
A(){ methode(); }
public void methode(){ i = 1;}
}
class B : public A {
B(): A(){}
public void methode(){i = 2;}
}
B truc = new B();
int j = truc.methode();
Crois-tu que i sera égal à 1 ou 2 à l'instanciation? Et après le second appel à methode?
C'est un exemple qu'on donne dans certaines écoles pour montrer qu'il est préférable d'éviter les appels de méthodes (surtout publiques) au sein d'un constructeur. Après le mec qui connait bien le langage, évidemment qu'il va trouver directe la valeur de i mais pour une personne moins expérimentée, genre le stagiaire, ça peut être la source d'une erreur facile d'où le fait de ne pas faire d'appels dans un constructeur; en plus de manipuler un objet non instancié.
(Là pour ceux qui se demandent, la valeur de i est 1 à l'instanciation car c'est la méthode de la classe mère qui est appelée et non celle de la fille. La méthode n'est pas déclarée virtuelle. Or, lors de l'appel de la méthode dans le code, c'est la méthode de la classe fille qui est appelée donc la valeur de i sera 2 après ça. Si la méthode avait été virtuelle dès le début en effet la valeur aurait tout le temps 2.)
Bonjour qu'est-ce que l'équivalent de la flèche ( ->)en C#
Le . (point)
@@LiorCHAMLA merci
Merci Lior pour la vidéo,
Mais j'ai une question, est ce qu'on peut avoir une vidéo sur les notifications instantanées en symfony 4 ??
Je sais pas trop ce que tu entends par notifications instantanées mais si tu parles de Mercure y a des vidéos de Kevin Dunglas, son créateur, en veux tu en voilà :)
Bonjour, merci pour les vidéos, je les trouves vraiment très bien.
J’ai une petite question : lorsque la souris passe sur une variable (entre autre) il y a une petite fenêtre qui apparait à côté avec des infos, est ce un plugin ? Si oui lequel ? Exemple vers 8min53 env
Merci bien
PHP Intelephense !
merci
Bonjour, excellente vidéo merci !
J’avais juste une question : pourquoi vous mettez tout à la fin de la vidéo dans la fonction construct this->setAge($age) au lieu de simplement mettre setAge($age) ? Car de toute manière en faisant appel à cette fonction elle renseignera le this->age
Parce que la fonction setAge contient une vérification que l'âge qu'on a passé est bien ce qu'on attend ! Il faut s'assurer que le développeur ne mette pas un âge trop élevé ou pas assez !
Lior CHAMLA Ah oui je comprends merci !
Sublime ! :D
Merci :)
Du coup le getAge n'est pas obligatoire ? Même en private on peut afficher l'âge sans passer par le getter ? (dans ton exemple c'est le cas si j'ai pas raté un truc)
Merci pour les cours ;)
Non, en private tu ne peux accéder à l'âge QUE DEPUIS L'INTERIEUR DE LA CLASSE OU EST DEFINIE $age :-)
Tu ne peux pas faire $employe1->age (ni pour le lire ni pour écrire). Donc tu es obligé de dire $employe1->getAge()
Pourquoi throw New Exception ? Ne peut-on pas mettre echo tout simplement ?
Sinon mettre simplement public function setAge(int $age) ?
Le type hinting (dire int devant $age) n'existe pas en php 5 et dans d'autres langages, mais oui dans l'idéal c'est ce qu'il faudrait faire. Et on throw une new Exception pour être sur que le code s'arrête bien ici et pas simplement un echo qui parfois ne se verrait pas forcément :-)
Lior CHAMLA le type hinting existe bien en php 5
@@Ryu53898 Cadeau : www.php.net/manual/fr/functions.arguments.php#functions.arguments.type-declaration (pas pour les types primitifs comme int, float ou string). Je sais pas exactement ce que tu essayes de faire mais crois moi, j'ai fait du PHP 5 pendant des années et c'était la meilleure façon de comprendre les bienfaits d'avoir des setters / getters sur nos objets (même si ils ont aussi plein d'autres avantages).
Donc oui pour les gens comme moi, le type hinting ça n'a pas aidé pendant plus de 10 ans. Mais oui aujourd'hui c'est ce qu'il faudrait faire.
Est-ce que ça aiderait les gens qui regardent cette vidéo à comprendre l'encapsulation ? Pas vraiment.
En tout cas j’aime beaucoup t’as manière d’expliquer les choses.. pauvre stagiaire !!. Sinon typer la valeur int $age directement dans le constructeur ne suffirait pas à l’empêcher de passer une string à $age?
Merci, j'ai pas utilisé le type hinting (le fait de dire quel type j'attend) parce que dans certains langages ça n'existe pas ;-)
Super l'humour. J'ai tout compris. Si tu veux pas finit clodo mets toi a la POO. C'est ca ?
En résumé oui ^^
pas malpour reviser en ayant une nouvelle explication sur le monde de la poo qui n'est pas si simple...
mais qu'est ce qui empeche le stagiaire de modifier la propriété en la remettant en public ?
la classe de base, le stagiaire y bosse pas du tout, et travail dans une autre classe d'où il appelera les employees et leurs methodes...grace à l’héritage ou le fait d'etre dans le même package...je sais plus trop.
Ha ben ça y a rien qui empêche le stagiaire de modifier la classe Employe c'est sur, néanmoins il comprendra qu'il est à un niveau de modification qui a surement des implications "graves" du moins plus grave que simplement se tromper dans l'affectation d'une variable
@@LiorCHAMLA je croyais qu'on pouvait carrement l'empecher de toucher à la classe quon a pas envie qu'il mette en l'air. bref...noté, thank for reply.
Et la fonction getage ? On s'en sert où dans tout ça ?
Quand tu as besoin de connaitre l'âge de l'objet :)
@@LiorCHAMLA merci
Merci Lior mais vas-y mollo avec le stagiaire parceque il n’arrête pas de prendre chère le pauvre :-D
Moi qui est fait du java sa fait bizarre que les variables ne soit pas typé en PHP sa eviterai de mettre le is_int en declarant directement int $age quoique je pense que dans PHP 7 cela est géré
En fait depuis PHP 7, tu peux faire du Type Hinting, c'est à dire que tu peux préciser le type de paramètres qu'attendent tes fonctions :-)
@@LiorCHAMLA merci. Excellent tes cours
Top ✅🙏
Merci beaucoup :)
Sublimeee ;)
Merci ;)
@@LiorCHAMLA En revisionnant ta vidéo qu'est ce que tu le tue le stagiaire mdr "il m'a baisé mon projet procès au cul faillite on finis dans la rue en mode clochard". Je suis mdr
C'est super cool, mais ton stagiaire là est terrible!!!
On est tous le stagiaire de quelqu'un ;) ;) ;)
Pourquoi les autres vidéos c’est à dire la 3/4 et 4/4 sont en privée donc non accessible ?
ben! je pense que c'est juste pas encore en ligne
Décidément ce stagiaire hein !!!! 🤣🤣🤣🤣 un vrai sac à problèmes 😂😂
Le pauvre stagiaire, alors qu'en fait on est tous sauvés à un moment ou à un autre de notre journée par ces protections :D
Ya des gens qui vient du tuto PHP POO d'Hiroshima ici ?
?
Oui hehe
Je vois pourquoi les stagiaires sont mal vue par les patrons😂😂😂
Comme d'habitude, merci Lior.
Tu as zappé le lien vers la première vidéo pour les nouveaux vers 0:25.
Quel dégénéré ce stagiaire.
Merci fréro Coton !
15:11 Je ne comprends pas trop pourquoi tu essaies de faire croire que grâce à la programmation orientée objet on peut vérifier la validité des donnés transmises (spoiler on peut le faire avec une simple fonction). Il ne faut pas inventer de faux arguments favorables à la POO quand son seul véritable intérêt est la lisibilité du code quand on bosse sur un gros projet et surtout qu'il est partagé. Vidéo assez intéressante néanmoins même si tu en fais des tonnes.
Merci c'est top ça nous donne envie de voir la suite. Est ce que vous ne pouvez pas mettre la vidéo tous les 3 jours parce que je trouve que vous mettez trop de temps à mettre la prochaine vidéo du coup on reste la à attendre.
Faut peut-être pas pousser quand même. Accessoirement je pense que Lior a une vie aussi lol
ibrahim. soidridine Lior a une vie réelle aussi
Bah Ibrahim faut pas rester "là à attendre", faut trouver tes propres ressources, des tutoriels en ligne et d'autres vidéos qui vont t'aider à progresser ! La prochaine sortira mercredi il me semble :-)
@@LiorCHAMLA c'est ce que je fais je regarde d'autres tutoriels mais je trouve que les tiens sont très bien expliqué. Comme je t'expliqué j'ai déjà eu certaines expériences mais j'ai des lacune du coup j'ai hâte de voir comment on s'y prend pour développer de A à Z une application sans passer par les freemwork
c'est toujours de la faute des stagiaires :)
Rhoo non, c'est surtout souvent de la faute de ceux qui sont au dessus d'eux ! La preuve dans mes vidéos :)
le stagiaire c'est un fou fou MDR
Il est trop mignon mais il tente des trucs de fous des fois :p
Ptdrrrrrr ce foutu stagiaire me fume !
Le pauvre :'(
))))))))
Il est chiant ce stagiaire
IL CASSE LES COUILLES ! :p