Merci beaucoup pour la vidéo, je vois qu'elle date de 2015, es-ce toujours d'actualité d'utiliser le système de routing comme ça ou il y'a des améliorations possibles aujourd'hui en 2023...
Juste une question de debutant. si je dois gerer la validation d'un formulaire ou le traitement d'un exercice, les fonctions du formulaire ou des exo serons stokés dans un fichier function. la question est comment dois je appelé ces fonction et ou dois je les positionés. Merci pour la reponse
Super vidéo, cela dit on pourrait grandement simplifié le système de router je pense. Côté classe de routing je n'ai pas encore réfléchis, mais concernant les routes elles même, là c'est un peut galère. En gérant depuis un tableau, contenant lui même des tableaux pour les conditions (les fameux with), on pourrait avoir un système de route plus simple à l'utilisation, à modifier et qui en plus pourrait être modifié directement via le site dans le panel d'admin via un système de formulaire.
Je réponds un peu tard mais je voudrais quand même réagir. Le but de la POO c'est justement de faire en sorte de manipuler des objets et de cacher aux utilisateurs la partie "chiante" de la gestion d'UNE route. Depuis la vidéo j'ai refais mon routing 3 fois et maintenant j'ai une classe pour gérer le router en lui même, une classe pour représenter une route, une autre pour avoir un groupe de routes etc.
Merci pour le tuto, un petit souci lorsque j'essaie d'exécuter l'application via le cli, au niveau du navigateur dans la barre de recherche on voie bien que le lien a changer par contre le contenu elle ne change pas. Auriez vous idée?
Bonjour, merci pour ce tuto qui est bien sympa, j'ai cependant un petit problème, j'ai lié ce routeur à une classe de template, et il ne me fait pas la liaison avec les fichier CSS, auriez vous une idée d’où cela pourrait venir ?
Bonjour, très bon tutoriel! l'URL rewriting en htaccess, c'est une galère et on est dépendant des serveurs apaches. Est-ce qu'il possible avec ce système de gérer le cas de pages qui n'existent pas ? Par exemple en faisant une redirection vers une page 404. Si on met en place un système MVC, qu'est-ce qu'il faut appeler dans la page index.php ? la vue ou le controleur ?
Merci pour la vidéo, j'ai seulement un petit problème concernant les liens. imaginons si on un menu qui permet d 'afficher les autres pages, quand on affiche un article spécifique et ensuite on veut revenir à la page de tous les articles, il remplace l'id dans l'url par posts : Router/posts/5 => Router/posts/posts. Est ce qu'on doit gérer ça en .htaccess? quelqu'un a une solution?
Bonjour, un tuto qui m'a bien aider. Par contre je ne comprend pas comment passer les valeurs d'un formulaire car si par exemple je fais $router->post('/page', 'controler#function') ça ne fonctionne pas. Merci.
Sur openclassrooms, il est dit qu'il ne faut pas appeler les propriétés directement dans le constructeur, car le principe d'encapsulation n'est plus respecté. Il faut plutôt passer par des setters. Comme ceci : class Router { private $_url; public function __construct($url) { $this->setUrl($url); } public function setUrl($url) { $this->_url = $url; } }
Je réagis un peu tard mais je dirais la flexibilité et la simplicité dans la façons de faire. Le but c'est de gérer tout ce qu'on faisais en htaccess en php car la syntaxe est plus claire (je trouve).
@@HisokaXKuroro1 Ou pas pauvre fou ^^ Le Singleton est un pattern qui ne doit être utiliser que si 2 instances d'une classe provoqueraient une défaillance du système. Ce qui n'est clairement pas le cas ici. Ce qu'il faut c'est faire de l'injection de dépendances et si besoin faire un DIC (Dependancy Container Injection) Le soucis de Singleton c'est qu'il rends ton code trop dépendant les un des autres.
@@quenti7728 qu'en pense tu ? github.com/luxferoo/php-boilerplate/blob/master/src/IoC/initIoC.php je chaque jour je revoi le code et j'améliore (comme un ptit jeu) Si jamais t'as des remarques n'hesite pas stp à partager avec moi tes critiques via commentaire ou en privé et merci encore pour ta réponse constructive.
trés intéressant merci pour ce tuto j'ai une petite question ... j ai suivi ce tuto pour enfin realiser un router personnalisé et j ai voulu avancer encore plus pour ajouter un moteur de tempalte TWIG sauf que que je me trouve avec des errors la solution que j ai eu c'est de faire appel chaque fois à une instance de twig dans chaque function par exemple : $router->get('/test',function(){ $loader=new Twig_load_Filesystem('views'); $twig=new Twig_Enviroment($loader); echo $twig->render('index.html',array('text'=>'hellofriend')); }); // ça marche mais c'est chiant et stupid lol de ma part _________________ HELP ! Pour faire q'un seul appel dans index.php et merci d'avance :)
Tu as du passer à autre chose depuis mais j'aurais fais l'init juste avant l'appel de la fonction de callback ce qui donne : if ($route->match($this->url)) { $loader=new Twig_load_Filesystem('views'); $twig=new Twig_Enviroment($loader); return $route->call($twig); } et on le passe à la fonction call ou encore plus simple le mettre en dehors au tout début et faire un function() use($twig) {}
vous êtes très fort.merci pour les tutos
T'es le best mon gars! t'aide beaucoup
Merci beaucoup pour la vidéo, je vois qu'elle date de 2015, es-ce toujours d'actualité d'utiliser le système de routing comme ça ou il y'a des améliorations possibles aujourd'hui en 2023...
tres bon prof !!
Juste une question de debutant.
si je dois gerer la validation d'un formulaire ou le traitement d'un exercice, les fonctions du formulaire ou des exo serons stokés dans un fichier function.
la question est comment dois je appelé ces fonction et ou dois je les positionés. Merci pour la reponse
#citiesskylines pour la miniature ;) Superbe vidéo.
LOL
Super vidéo, cela dit on pourrait grandement simplifié le système de router je pense. Côté classe de routing je n'ai pas encore réfléchis, mais concernant les routes elles même, là c'est un peut galère.
En gérant depuis un tableau, contenant lui même des tableaux pour les conditions (les fameux with), on pourrait avoir un système de route plus simple à l'utilisation, à modifier et qui en plus pourrait être modifié directement via le site dans le panel d'admin via un système de formulaire.
Je réponds un peu tard mais je voudrais quand même réagir.
Le but de la POO c'est justement de faire en sorte de manipuler des objets et de cacher aux utilisateurs la partie "chiante" de la gestion d'UNE route.
Depuis la vidéo j'ai refais mon routing 3 fois et maintenant j'ai une classe pour gérer le router en lui même, une classe pour représenter une route, une autre pour avoir un groupe de routes etc.
Au lieu d'un tableau, on pourrait utiliser une classe.
Cities Skylines avec une intersection en guise de miniature, original ^^
Merci pour le tuto, un petit souci lorsque j'essaie d'exécuter l'application via le cli, au niveau du navigateur dans la barre de recherche on voie bien que le lien a changer par contre le contenu elle ne change pas. Auriez vous idée?
Bonjour, merci pour ce tuto qui est bien sympa, j'ai cependant un petit problème, j'ai lié ce routeur à une classe de template, et il ne me fait pas la liaison avec les fichier CSS, auriez vous une idée d’où cela pourrait venir ?
Bonjour,
très bon tutoriel! l'URL rewriting en htaccess, c'est une galère et on est dépendant des serveurs apaches.
Est-ce qu'il possible avec ce système de gérer le cas de pages qui n'existent pas ? Par exemple en faisant une redirection vers une page 404.
Si on met en place un système MVC, qu'est-ce qu'il faut appeler dans la page index.php ? la vue ou le controleur ?
Bonjour comment on peut avoir acces a $router (variable dans index.php) dans nos controller ?
C'est beau !
selon la doc de PHP pour l'option "i":
> i (PCRE_CASELESS)
> Effectue une recherche insensible à la casse.
Merci pour la vidéo, j'ai seulement un petit problème concernant les liens. imaginons si on un menu qui permet d 'afficher les autres pages, quand on affiche un article spécifique et ensuite on veut revenir à la page de tous les articles, il remplace l'id dans l'url par posts : Router/posts/5 => Router/posts/posts. Est ce qu'on doit gérer ça en .htaccess? quelqu'un a une solution?
Bonjour, un tuto qui m'a bien aider. Par contre je ne comprend pas comment passer les valeurs d'un formulaire car si par exemple je fais $router->post('/page', 'controler#function') ça ne fonctionne pas.
Merci.
Bonjour, j'aimerais savoir si c'est possible de cacher la variable id dans le url SVP Merci
It is sad that this tutorial is not on English, seems good tutorial.
Super video mais j'ai un petit problème, comment faire pour utiliser $router->url() depuis un Controller?
Sur openclassrooms, il est dit qu'il ne faut pas appeler les propriétés directement dans le constructeur, car le principe d'encapsulation n'est plus respecté. Il faut plutôt passer par des setters. Comme ceci :
class Router
{
private $_url;
public function __construct($url)
{
$this->setUrl($url);
}
public function setUrl($url)
{
$this->_url = $url;
}
}
Dans ce cas on devrait définir la visibilité de la méthode setUrl() comme privée 😉
j ai rencontrer un souci, lorque j'utilise une method statique. la method s execute directement sans pour autant que j'appel cette route
et si je veux utiliser action="/posts" quand je submit?
Super tuto ;)
Salut, qu'elle est la difference entre ce router en PHP et un url rewriting avec un .htaccess ?
Merci d'avance
Je réagis un peu tard mais je dirais la flexibilité et la simplicité dans la façons de faire. Le but c'est de gérer tout ce qu'on faisais en htaccess en php car la syntaxe est plus claire (je trouve).
D'ou sort le $_GET['url'] ? c'est grace a composer que cette variable est définit ?
+Xoto Du htaccess
merci pour le tuto mais une question comment j'accède à $router dans PostsController pour générer mes urls ???
tu dois utiliser le design pattern Singleton
@@HisokaXKuroro1 Ou pas pauvre fou ^^
Le Singleton est un pattern qui ne doit être utiliser que si 2 instances d'une classe provoqueraient une défaillance du système. Ce qui n'est clairement pas le cas ici.
Ce qu'il faut c'est faire de l'injection de dépendances et si besoin faire un DIC (Dependancy Container Injection)
Le soucis de Singleton c'est qu'il rends ton code trop dépendant les un des autres.
@@quenti7728 qu'en pense tu ?
github.com/luxferoo/php-boilerplate/blob/master/src/IoC/initIoC.php
je chaque jour je revoi le code et j'améliore (comme un ptit jeu)
Si jamais t'as des remarques n'hesite pas stp à partager avec moi tes critiques via commentaire ou en privé et merci encore pour ta réponse constructive.
Спасибо!!
trés intéressant merci pour ce tuto
j'ai une petite question ... j ai suivi ce tuto pour enfin realiser un router personnalisé et j ai voulu avancer encore plus pour ajouter un moteur de tempalte TWIG sauf que que je me trouve avec des errors
la solution que j ai eu c'est de faire appel chaque fois à une instance de twig dans chaque function par exemple :
$router->get('/test',function(){
$loader=new Twig_load_Filesystem('views');
$twig=new Twig_Enviroment($loader);
echo $twig->render('index.html',array('text'=>'hellofriend')); }); // ça marche mais c'est chiant et stupid lol de ma part
_________________
HELP ! Pour faire q'un seul appel dans index.php et merci d'avance :)
Tu as du passer à autre chose depuis mais j'aurais fais l'init juste avant l'appel de la fonction de callback ce qui donne :
if ($route->match($this->url)) {
$loader=new Twig_load_Filesystem('views');
$twig=new Twig_Enviroment($loader);
return $route->call($twig);
}
et on le passe à la fonction call ou encore plus simple le mettre en dehors au tout début et faire un function() use($twig) {}
tres bien fait , ou je pourrais te contacter pour une demande de tutorial en javascript .
ryd com ça se passe ici : www.grafikart.fr/forum/proposition-de-tutoriels-57
J'ai cliqué à cause de Cities Skylines :(
Yoshi Dragon Dur dur de trouver une illustration adéquat :D
***** Y'a souvent pas mal d'ingéniosité dans ces miniatures :3
Great tutorial (Y)
imbuvable
if only this could be in English ;)
Seigneur. Je suis perdu 😭
Tu as trop compliqué les choses pour rien. J'aime bien l'idée du style Rails lol