Bonjour monsieur,
Merci pour votre passion d’enseignement GRAFIKART, j’ai beaucoup appris
Je suis à mon deuxième jour entrain de trouver une solution mais en vin
J’avais une erreur dont :
Fatal error: Function name must be a string in C:\wamp64\www\ImpactJob\public\index.php on line 18
Là je suis au bout de mes force car j’ai pratique toutes les propositions qui sont sur les commentaires je n’arrive pas
La premiere proposition etais de faire
<?php
$match = $router->match();
if ($match)
$match['target']();
?>
Ma page ne donne plus d’erreur mais une page blanch
Sur mon terminal j’ai une error : Invalid request (Unexpected EOF)
je viens de faire le l’autres solution qui est de créer fichier .htaccess
avec comme
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . public/index.php [L]
Toujours rien
Svp , j’ai besoin d’aide
Bonjour,
Au lieu de faire "$match['target']();"
Essaie avec "call_user_function($match['target']);"
Si ta fonction est contenu dans un object. Par exemple : MaClasse::MaMethodStatic(). La syntaxe changera un peu :
call_user_function(["MaClasse", "MaMethodStatic']);
Le 2e argument de call_user_function() est utile lorsque tu veux injecter des paramètres à ta méthode :
call_user_function($match['target'], $_GET["xxx"]);
Vérifie également que $match["target"] contient bien une chaine de caractère. (vu l'erreur, ce n'est pas le cas).
var_dump($match["target"]); pourrait t'aider...
Merci pour votre proposition @Cybercraft
apres la mise en pratique.
var_dump($match["target"]) me donne :NULL
comment je fais pour recupper quelques chose?
Je t'envoi le code précédent mais corrigé. (voir plus bas)
Si $match['target'] est null... C'est que le router n'a rien "matché".
Peux-tu mettre le code complet de "index.php" ? (en enlevant les données sensibles).
$match = $router->match();
if (!is_null($match['target'])) {
call_user_function($match['target']);
}
voici mon index.php qui est dans le public
<?php
require '../vendor/autoload.php';
$router = new AltoRouter();
define('PATH', dirname(__DIR__) . '/views');
$router->map('GET', '/home', function () {
require PATH . '/home/index.php';
});
$router->map('GET', '/blog', function () {
require PATH . '/post/index.php';
});
$match = $router->match();
if($match && !is_null($match['target'])){
call_user_function($match['target']);
}
var_dump($match["target"]);
Bonsoir,
Pour mettre en forme le code il faut utiliser le code "markdown"
D'où sort la constante "DIR" ?
Qu'elle l'url de la page "blanche" ?
Active les erreurs PHP ou consulte les logs
D'où sort la constante "DIR" ? ===> permet de remonté d'un grans dans le dossier /views
Qu'elle l'url de la page "blanche" ? ===> toutes les page
@michael@ :
je parlais de "DIR" " et non _DIR_
,(éditer sinon le site me corrige), il a éditer son message entre temps
Et a qu'elle moment il site que c'est toutes les pages ?
au temps pour moi, je n'avais pas vu que tu étais l'auteur et ne comprennais pas la réponse
cela ne me dit toujours pas qu'elle est l'url
l'Url est charger par
$router->map('GET', '/home', function () {
require PATH . '/home/index.php';
});
après avoir signaler dans mon terminal que : document>traverse> PHP -S localhost:5500 -t public
celui-ci lui demande d'aller charger la page index.php dans ```/home