Mise en pratique de la POO en PHP (2/39) : Structure du projet

  Рет қаралды 59,599

Grafikart.fr

Grafikart.fr

Күн бұрын

Пікірлер: 91
@jfabulas
@jfabulas 6 жыл бұрын
Salut Graphikart ! Bravo pour cette série de vidéos ! Franchement je ne sais pas comment tu fais pour connaître autant de technos différentes
@powergrab9782
@powergrab9782 3 жыл бұрын
4:40 J'ai un message d'erreur lorsque j'exécute la commande : "Directory public/ does not exist." J'ai juste taper localhost, car c'est comme ça que j'y accède, mais ça m'affiche ce message d'erreur. Quelqu'un aurait-il une solution à ce problème ? Merci.
@MDMSCOOPS
@MDMSCOOPS 6 ай бұрын
Je suis là en 2024
@kurisu-game
@kurisu-game 7 жыл бұрын
Merci pour ce tutoriel super intéressant, d'autant que je souhaite créer mon propre framework donc merci beaucoup ;)
@dranostyippo7277
@dranostyippo7277 7 жыл бұрын
Bonjour, Comment faites-vous pour avoir accès aux interfaces, traits et classes extérieures avec votre IDE ? Je suis constamment obligé de vérifier les docs pour ça et écrire les 'use' à la main devient redondant. Merci.
@SekaiofKangae
@SekaiofKangae 6 жыл бұрын
Bonjour, j'ai un problème à partir de 9:00 , lorsque je teste l'url, j'obtiens un "syntax error, unexpected ':' ", j'ai vu que quelqu'un avait le même problème ci-dessous, et remplacer la ligne ou il y a l'erreur header(string:'Location: ' . substr($uri, start:0, length:-1)); par header('location: ' . substr($uri,0 , -1)); Mais si je fais ça, une nouvelle erreur arrive: unexpected 'header' . J'ai même essayé d'enlever du coup la ligne suivante avec moved permanently mais la c'est unexpected 'exit' qui apparait... J'utilise wamp avec la version php 7.1.9 Voici mon code: class App { public function run() { //url sans slashs $uri = $_SERVER['REQUEST_URI']; if(!empty($uri) && $uri[-1] === "/") { header('location: ' . substr($uri,0 , -1)); header(string:'HTTP/1.1 301 Moved Permanently'); exit(); } echo 'CC'; } } Si quelqu'un peut m'aider ou a eu le même problème j'en serais reconnaissante, ce tuto m'intéresse beaucoup, je trouve ça dommage d'en cherche un autre que celui de grafikart... Merci d'avance
@GGTcommunity
@GGTcommunity 3 жыл бұрын
ne mettez pas les trucs qui sont grisé, c'est un truc de l'ide pour lui dire ce qui faut mettre dedans, ce n'est pas du code
@ridwanemoussa4657
@ridwanemoussa4657 3 жыл бұрын
Bonjour Grafikart! j'ai une erreur $this->assertContains('Bienvenue sur le Blog',(string)$response->getBody()); TypeError: Argument 2 passed to PHPUnit\Framework\Assert::assertContains() must be iterable, string given, called in
@yaen7488
@yaen7488 2 жыл бұрын
Ta résolu ton problème ?
@k1ry9955
@k1ry9955 5 жыл бұрын
Bonjour et merci pour toutes les vidéos. Mais j' aimerai vraiment savoir quel module apache fait que toute requête: "mon-site/requête" aboutie a un 404 sur mon localhost ou mon serv ovh. Avec le serveur PHP je n' ai aucun problème et j' ai tout qui fonctionne comme dans la vidéo.
@djumaiddy6073
@djumaiddy6073 6 жыл бұрын
t'e vraiment le meilleur mec.big up
@kamssplayer1162
@kamssplayer1162 7 жыл бұрын
Bonjour, je tente de suivre votre tutoriel, mais arrivé au moment ou je charche ServerRequestInterface cela me renvoi l 'erreur suivante. Catchable fatal error: Argument 1 passed to Framework\App::run() must be an instance of Psr\Http\Message\ServerRequestInterface, none given une idée svp ?
@ratila67
@ratila67 6 жыл бұрын
Hello, lorsque je souhaite lancé mon serveur, celui ci utilise la version 7.0.10 de PHP, comment faire pour qu'il utilise la même version que vous ? Merci
@stevendoesnt663
@stevendoesnt663 6 жыл бұрын
Bonjour Grafikart, je suis attentivement cette formation en premium j utilise phpstorm, j'en suis à 20:18 quand tu lances le test j'ai cette erreur que je n arrive pas à résoudre pourtant j'ai le même code et également essayé avec le tiens.... ------------- There was 1 failure: 1) Tests\Framework\AppTest::testRedirectTrailingSlash Failed asserting that an array contains '/demoslash'. C:\xampp\htdocs\myFramework\tests\Framework\AppTest.php:24 FAILURES! Tests: 1, Assertions: 1, Failures: 1. ------------------- public function testRedirectTrailingSlash() { $app = new App(); $request = new ServerRequest('GET', '/demoslash/'); $response = $app->run($request); $this->assertContains('/demoslash', $response->getHeader('Location')); $this->assertEquals(301, $response->getStatusCode()); } merci d'avance!
@aymenanes4332
@aymenanes4332 3 жыл бұрын
salut! j'ai une erreur Uncaught Error: Class 'monApp\App' not found in C:\wamp64\www\monApp\public\index.php:3 et j'ai toujour cet erreur malgré que le code est juste
@Al.Andalouz
@Al.Andalouz 5 жыл бұрын
salut grafikart, tu peux stp me dire c quoi la différence lorsque en démarre le serveur interne de php avec php -S localhost:8000 pour affiché une page php et lorsqu'on passe par un serveur php dèjà installé par exemple sur xamp !
@sbitkane2268
@sbitkane2268 7 жыл бұрын
Bonjour Grafikart j'ai une erreur au niveau de mon url lorsque je tape /demosslash/ il me sort un url comme localhost:9000/demoslash/:%20/demoslash une idée svp ? merci d'avnce
@SekaiofKangae
@SekaiofKangae 6 жыл бұрын
salut si tu as trouvé une réponse depuis, je suis preneuse !
@TsMProds
@TsMProds 7 жыл бұрын
Bonjour Graf, lors des tests unitaires (sous windows) j'ai une erreur fatale : Class "PhpUnit..." not found, peux tu m'aider?
@grafikart
@grafikart 7 жыл бұрын
Tu as bien importé le bon namespace ? Au pire tu peux venir poser ta question sur grafikart.fr/tchat
@desmondmiles495
@desmondmiles495 7 жыл бұрын
Salut j'aime bien le design de ton os? c'est antergos ? quelles personnalisations as tu fait ?
@GGTcommunity
@GGTcommunity 7 жыл бұрын
Bonjour, je ne sais pas pourquoi mais quand je tape .vendor/etc... il me dit que .vendor n'est pas une commande. une idée ?
@grafikart
@grafikart 7 жыл бұрын
si tu tape juste vendor/... (sans le ./ au début ?)
@GGTcommunity
@GGTcommunity 7 жыл бұрын
Grafikart.fr pareil ça ne marche pas " 'vendor' n'est pas reconnu en tant que commande interne"
@GGTcommunity
@GGTcommunity 7 жыл бұрын
Bonjour, je ne comprend toujours pas j'ai beau chercher partout je ne sais pas pourquoi ça me dit sa alors que j'ai suivie a la lettre votre tutoriel et que j'ai fait comme vous justement pour pas avoir d'erreur mais la commande ne marche toujours pas
@TheKingOfSnak
@TheKingOfSnak 7 жыл бұрын
Tu es bien dans la racine du projet ?
@GGTcommunity
@GGTcommunity 7 жыл бұрын
Oui «c:/wamp64/www/MonFramework »... Edit: c'est bon il y a eu une mise a jour de VIsual Studio Code et maintenant ça marche... par contre juste comment peut-on par exemple faire que quand on utilise une classe ça met le "use" directement ?
@appelnonsurtaxe
@appelnonsurtaxe 7 жыл бұрын
Pourquoi les classes du PSR-7 n'ont pas simplement été implémentées dans le PHP (de base) ? Il s'agit de polyfills, et les classes seront ajoutées plus tard ?
@grafikart
@grafikart 7 жыл бұрын
Parceque le PSR a pour but d'uniformiser les frameworks en proposant une interface commune, pas forcément de repenser PHP. PHP continue (et continuera) de représenter la requête à travers des variables globales.
@appelnonsurtaxe
@appelnonsurtaxe 7 жыл бұрын
D'accord, merci beaucoup
@emilieg2036
@emilieg2036 6 жыл бұрын
Bonjour tout d'abord merci pour ces super tutos. J'ai juste un petit souci pour composer que j'ai bien installé via le terminal. En revanche pour la suite je ne sais pas comment récupérer composer.json par l'IDE. L'IDE que j'utilise est Bracket. Quand je fais composer init rien ne se passe pourtant j'indique bien la bonne arborescence de mon fichier monFramework...
@MEYER251189
@MEYER251189 6 жыл бұрын
bonjour, tout le monde est-ce que pour suivre cette formation il est nécessaire de suivre la première formation en poo de grafikart entièrement ?
@grafikart
@grafikart 6 жыл бұрын
Oui c'est indispensable, sauf si tu es déjà à l'aise avec les classes / objets en PHP
@MEYER251189
@MEYER251189 6 жыл бұрын
@@grafikart merci
@kahilachraf6479
@kahilachraf6479 7 жыл бұрын
Bonjour j'ai une error Parse error: syntax error, unexpected ':', expecting ',' or ')' dans cette ligne : header('location: '.substr($uri, start:0, length:-1)); :/ svp des idées !!!
@XelaaaTV
@XelaaaTV 7 жыл бұрын
header('location: ' . substr($uri,0 , -1));
@sanabraham5690
@sanabraham5690 4 жыл бұрын
Bonjour Grafikart et merci pour toutes les vidéos ,quand je lance composer init j'aurais l'erreur "symfony component console exception runtimeexception aborted" , la version que je l'utilise pour PHP est php 7.4.0 Merci de m'aider
@sanabraham5690
@sanabraham5690 4 жыл бұрын
le problème est résolu Merci
@Soulouf
@Soulouf 7 жыл бұрын
Et mince le problème c'est que j'utilise Laragon pour avoir des URL tres classe genre mon-framework.dev au lieu du localhost Du coup je n'arrive pas a faire les tests pour enlever les "/" je tombe direct sur une erreur comme quoi la page ne fonctionne plus.
@grafikart
@grafikart 7 жыл бұрын
Là il va être difficile de t'aider en commentaire car je n'utilise pas laragon, mais normalement ça devrait marcher, si tu as le temps passe sur le tchat en journée grafikart.fr/tchat
@Soulouf
@Soulouf 7 жыл бұрын
Je te remercie beaucoup, je passerai alors =)
@Soulouf
@Soulouf 7 жыл бұрын
J'ai résolu mon problème avec Valet pour Linux. J'ai vu que tu as fait un tuto sur Homestead, tu ne serais pas chaud pour en faire sur Laravel Valet ? (sachant il y a des versions dérivées pour Windows et Linux) c'est tellement rapide et facile =)
@mathieublairon8662
@mathieublairon8662 4 жыл бұрын
Bonjour, Voilà mon problème : 1) Tests\Framework\AppTest::testBlog TypeError: Argument 2 passed to PHPUnit\Framework\Assert::assertContains() must be iterable, string given, called in C:\wamp64\www\MonFramework\tests\Framework\AppTest.php on line 22 qui me renvoi a la ligne : $this->assertContains('Bienvenue sur le Blog', (string)$response->getBody()); Je ne comprend d’où peut venir le problème...
@lepiredescas83
@lepiredescas83 4 жыл бұрын
Même souci ici :/
@parisgraphe
@parisgraphe 4 жыл бұрын
pareil :(
@parisgraphe
@parisgraphe 4 жыл бұрын
Bon, ceci dit, la page fonctionne quand même 🤷‍♂️
@masamune6165
@masamune6165 4 жыл бұрын
Hello, je pense avoir trouvé (5 mois après ton message^^) : ``` $this->assertContains('Bienvenue sur le blog', [(string) $response->getBody()]); ``` Comme tu le vois, j'ai simplement placé le 2e paramètre dans un tableau et tout marche =)
@tambass4347
@tambass4347 3 жыл бұрын
@@masamune6165 En cherchant un peu, j'ai trouvé que assertContains() été déprécié depuis PHPUnit 8.0, attention aux versions !!! Maintenant, il faut écrire $this->assertStringContainsString(), et surtout ne pas oublier de retirer le (string) dans les paramètres...
@antoinedevldn
@antoinedevldn 7 жыл бұрын
Du lourd! Much love de Montreal
@saidhr9142
@saidhr9142 4 жыл бұрын
impeccable , Merciii
@neldev9813
@neldev9813 7 жыл бұрын
Salut Grafikart. Pourquoi tu n'utilises plus kahlan pour les tests unitaires ?
@grafikart
@grafikart 7 жыл бұрын
pour le coup on va rester sur phpunit car il est plus répandu.
@mucyotreasure9178
@mucyotreasure9178 7 жыл бұрын
merci bcp grafikart
@pierrenapoletano3889
@pierrenapoletano3889 5 жыл бұрын
Quelle thème pour intellij utilises tu au moment de la vidéo, sinon super video
@grafikart
@grafikart 5 жыл бұрын
Tinacious github.com/Grafikart/intellij-tinacious
@azertyupz
@azertyupz 7 жыл бұрын
Salut, utilises-tu la version gratuite ou payante de intellij ?
@grafikart
@grafikart 7 жыл бұрын
Payante, j'utilise un abonnement Jetbrain toolbox
@tarekbelhaj7533
@tarekbelhaj7533 7 жыл бұрын
merci pour le tuto, quel est le nom de l'ide que vous utilisez? merci
@GGTcommunity
@GGTcommunity 7 жыл бұрын
intellij
@mohamedsimari5398
@mohamedsimari5398 7 жыл бұрын
ca me donne Invalid author string. Must be in the format ?? une idéé
@grafikart
@grafikart 7 жыл бұрын
Ne met pas de caractères spéciaux
@mohamedsimari5398
@mohamedsimari5398 7 жыл бұрын
OK ca passé mrc ca me donne un fichier json comme ca { "name": "framework/mon-framwork", "require": {} }
@MTEndia
@MTEndia 7 жыл бұрын
Your configuration does not allow connections to packagist.org/packages.json. See getcomposer.org/do c/06-config.md#secure-http for details. une idée ?
@MTEndia
@MTEndia 7 жыл бұрын
Je précise que j'ai désactiver ssl parceque composer me le demander, je suis sous windows 10
@KuriosArt
@KuriosArt 7 жыл бұрын
Super, ca commence bien :)
@lvndry8546
@lvndry8546 7 жыл бұрын
Quel IDE est utilisé dans la video svp ?
@grafikart
@grafikart 7 жыл бұрын
IntelliJIDEA
@antoinefouque5034
@antoinefouque5034 6 жыл бұрын
Bonjour je suis totalement débutant, je n"arrive pas a installer composer et l'utiliser quelqu'un pourrai m'aiguiller pour avoir toutes les clés en main et suivre ce tutoriel ? Merci
@grafikart
@grafikart 6 жыл бұрын
www.grafikart.fr/tutoriels/php/composer-480
@antoinefouque5034
@antoinefouque5034 6 жыл бұрын
Merci beaucoup, j'essaye de suivre ta formation sur la programmation orienté objet je maitrise les bases de php mais je ne comprend rien sur tout les dossier que tu as sur intellji par ou tu me conseilles de commencer pour pouvoir suivre toutes cette formations ? Merci
@dranostyippo7277
@dranostyippo7277 7 жыл бұрын
$uri[-1] me donne "Notice: Uninitialized string offset: -1" comment ça se fait ?
@grafikart
@grafikart 7 жыл бұрын
Met à jour PHP vers la version 7.1
@RICKOVER100
@RICKOVER100 7 жыл бұрын
Salut j'aimerai bien avoir un tuto PHP objet en mode débutant pas à pas svp avec un débit sur speech low lol
@mechanicalseu
@mechanicalseu 7 жыл бұрын
Il en a déjà fait un je crois cherche POO dans ses vidéos
@ludwigjedde59
@ludwigjedde59 6 жыл бұрын
mets la vitesse de la vidéo à 0.75, tu vas voir, si t'es débutant le débit de Grafikart va moins vite et tu as le temps de comprendre. ;-)
@oOLuNaTiC93Oo
@oOLuNaTiC93Oo 5 жыл бұрын
Bon tuto comme d'habitude mais fait attention à ton vocabulaire quand tu expliques quelque chose. Par exemple tu crée une classe et tu dis qu'elle "extends" de TestCase, tu devrais plutôt dire qu'elle hérite directement ça serait plus simple à comprendre. Pareil quand tu dis que tu n'as pas encore créé l'objet de type "Request", tu veux plutôt dire que tu n'as pas encore créé la classe. C'est pas grand chose mais lorsqu'on essai de comprendre le fonctionnement d'un système si le vocabulaire est confus ce n'est pas facile de se repérer encore plus quand on a pas connaissance des mots-clés ou opérateurs d'un langage.
7 жыл бұрын
Tu devrais utiliser php-cs-fixer pour fixer ton code plutôt que de le faire à la main, tu gagneras beaucoup, beaucoup de temps :)
7 жыл бұрын
Oui c'est pareil, et en fait il l'utilise dans les tutoriels suivant. Je ne sais pas pourquoi pas dans celui-ci du coup, mais soit ^^
@rayanasynat1954
@rayanasynat1954 7 жыл бұрын
Nom de thème de phpstorm pls
@rayanasynat1954
@rayanasynat1954 7 жыл бұрын
Thanks brother
@joelafouine735
@joelafouine735 4 жыл бұрын
Trop drole le "Ah mince ! j'ai supprimé ce fichier là"....
@mezaitakfarines7262
@mezaitakfarines7262 5 жыл бұрын
tu explique bien mais tu parle trop vite
@osmoz1762
@osmoz1762 4 жыл бұрын
C'est clair qu'il parle trop vite...
@Jordan.BASSET
@Jordan.BASSET 6 жыл бұрын
*Pense a remonter le contenu de ton IDE ! On ne vois rien quand la vidéo est en pause a cause de la barre en bas de la vidéo !*
@grafikart
@grafikart 6 жыл бұрын
A l'époque de l'enregistrement de ces vidéos la navigation du player n'était pas comme ça. Malheureusement il est trop tard maintenant pour changer les choses :( Désolé pour le désagrément.
7 жыл бұрын
Oh mon dieu ne pas versionner le composer.lock c'est mal. Le jour où un truc plante en prod parce qu'un vendor n'est pas à la bonne version ça va faire mal. Si la version de php est ton unique problème tu peux la fixer dans le composer.json et composer respectera lorsqu'il calcule les dépendances. Doc ici : getcomposer.org/doc/06-config.md#platform
@grafikart
@grafikart 7 жыл бұрын
Le problème (dans mon cas) c'est que la version de PHP de mon environnement de dev (arch linux) est souvent trop en avance et va me générer un composer.lock incorrect. Utiliser la platform est une bonne idée mais je pourrais me retrouver avec le pb inverse (certe rare) d'une librairie non compatible avec la versio de PHP de mon environnement. Je préfère, pour le coup, générer un composer.lock lors des tests unitaires (sur l'environnement avec la même version que ma prod) mais effectivement je détaillerais un peu plus ce choix là dans une autre vdéo.
@TheKingOfSnak
@TheKingOfSnak 7 жыл бұрын
Symfony ne commit pas composer.lock, c'est mal donc pour tant d'utilisateur ? ^^ Ta prod et ton local est différent, c'est étrange de le commit
7 жыл бұрын
Normal qu'il ne le commit pas, sinon tous les utilisateurs auraient par défaut les versions des vendors datant de la release de symfo que tu utilises, sans les bugfix ou autre. Quand tu travailles de façon pro, tu *veux* avoir strictement les même versions des vendors en dev et en prod. Pourquoi ? Parce que si tu as un problème avec une version spécifique d'un vendor (une mise à jour qui pète quelque chose par exemple, ou à l'inverse une feature que tu as en dev qui ne sera pas en prod), tu vas avoir bien du mal à trouver la source du problème, puisque tu n'auras pas le même code selon l'environnement (et que le débug en production c'est pas possible...). C'est aussi valable pour les versions de php, tu configure ton environnement (virtuel ou pas) pour avoir la même version de php en dev, en test et en prod.
7 жыл бұрын
Si vous voulez plus d'infos, voici la doc de composer qui dit qu'il *faut* le commiter : getcomposer.org/doc/01-basic-usage.md#commit-your-composer-lock-file-to-version-control Un article de blog que j'ai trouvé rapidement qui explique pourquoi probablement mieux que moi : www.engineyard.com/blog/composer-its-all-about-the-lock-file
@mezaitakfarines7262
@mezaitakfarines7262 5 жыл бұрын
jcp pourquoi j'ai des erreurs alors que je fait la meme choses que toi bizar
Mise en pratique de la POO en PHP (3/39) : Le router
53:53
Grafikart.fr
Рет қаралды 33 М.
Apprendre Vue.js : Découverte de Nuxt
30:54
Grafikart.fr
Рет қаралды 10 М.
小丑教训坏蛋 #小丑 #天使 #shorts
00:49
好人小丑
Рет қаралды 44 МЛН
Cheerleader Transformation That Left Everyone Speechless! #shorts
00:27
Fabiosa Best Lifehacks
Рет қаралды 15 МЛН
Mise en pratique de la POO en PHP (4/39) : Le renderer
32:57
Grafikart.fr
Рет қаралды 15 М.
Tutoriel PHP : PHP-DI, Conteneur d'injecteur de dépendance
35:36
Grafikart.fr
Рет қаралды 11 М.
La POO en PHP (31/31) : Event Manager
27:24
Grafikart.fr
Рет қаралды 16 М.
Découverte de Cursor, un éditeur basé sur l'IA
19:15
Grafikart.fr
Рет қаралды 34 М.
Tutoriel PHP : Qu'est ce que le PSR ?
20:06
Grafikart.fr
Рет қаралды 14 М.
Mise en pratique de la POO en PHP (11/39) : Administration du blog
56:19
Mise en pratique de la POO en PHP (5/39) : Twig
20:06
Grafikart.fr
Рет қаралды 14 М.
Apprendre Vue.js : Tanstack Vue Query
26:12
Grafikart.fr
Рет қаралды 6 М.
小丑教训坏蛋 #小丑 #天使 #shorts
00:49
好人小丑
Рет қаралды 44 МЛН