En ce qui concerne le développement Web PHP, il est naturellement indissociable du framework de développement. Le framework de développement nous offre des méthodes de développement flexibles, une séparation des couches MVC, un découplage métier, etc. Cet article présente principalement les informations pertinentes pour apprendre le routage du framework MVC en PHP. Les amis dans le besoin peuvent s'y référer. J'espère que cela aide tout le monde.
Le premier article est plus simple et parle de la fonction de routage du framework MVC. . .
Le routage général du framework à entrée unique a cette structure :
domain/index.php/classname/functionname/var1/var2
L'index.php ici est appelé l'entrée déposer. . . Pour le serveur, vous accédez ici uniquement au contrôleur appelé après index.php et aux méthodes qu'il contient. Même le transfert de valeur est implémenté dans le cadre basé sur le niveau PHP.
Parler ne coûte pas cher, montrez-vous le code !!
Tout d'abord, créez la structure de fichiers suivante
Essayons-la, que diriez-vous Pour accéder aux fichiers à l’intérieur des contrôleurs. . .
Entrez le contenu suivant dans index.php
print_r($_SERVER);
Visitez ensuite l'adresse suivante pour essayer.
votredomaine/index.php/class/function/var1
L'auteur ici utilise l'environnement local, et l'adresse que je visite est localhost/MVC/index.php/class/function/var1
J'ai posté les deux variables les plus importantes
[REQUEST_URI] => /MVC/index.php/class/function/var1
[SCRIPT_NAME] => / MVC/index.php
En fait, le principe le plus basique du routage est ici :
Utilisez ces deux variables pour extraire la classe, la fonction, les paramètres, etc. dans l'adresse url, et puis placez la classe include, appelle la fonction correspondante et transmet les paramètres correspondants via la fonction de rappel PHP call_user_func_array.
Vient ensuite le code. La lecture du code devrait être plus facile à comprendre que ce que j'ai écrit. Haha~~
Le contenu de index.php est le suivant :
<?php # 定义application路径 define(‘APPPATH', trim(__DIR__,'/')); # 获得请求地址 $root = $_SERVER['SCRIPT_NAME']; $request = $_SERVER['REQUEST_URI']; $URI = array(); # 获得index.php 后面的地址 $url = trim(str_replace($root, ”, $request), ‘/'); # 如果为空,则是访问根地址 if (empty($url)) { # 默认控制器和默认方法 $class = ‘index'; $func = ‘welcome'; } else { $URI = explode(‘/', $url); # 如果function为空 则默认访问index if (count($URI) < 2) { $class = $URI[0]; $func = ‘index'; } else { $class = $URI[0]; $func = $URI[1]; } } # 把class加载进来 include(APPPATH . ‘/' . ‘application/controllers/' . $class . ‘.php'); #实例化 $obj = new ucfirst($class); call_user_func_array( # 调用内部function array($obj,$func), # 传递参数 array_slice($URI, 2) );
Ajoutez les 2 fichiers suivants dans application/controllers
index.php est utilisé comme contrôleur par défaut
<?php class Index { function welcome() { echo ‘I am default controller'; } } ?> hello.php <?php class Hello { public function index() { echo ‘hello world'; } public function name($name) { echo ‘hello ‘ . $name; } } ?>
Testez-le et voyez si vous pouvez y accéder. Selon la structure de routage ci-dessus. Essayons
Cet accès est normal, la méthode name à l'intérieur de la classe hello est correctement appelée, puis le paramètre barbery est passé. . .
Réessayez sans saisir le nom de la fonction pour voir si vous pouvez appeler index par défaut. .
La réponse est également oui. . .
Dernier, visitez l'adresse racine pour voir si
est également correctement mappé au contrôleur par défaut. . .
ok, une simple fonction de routage MVC est terminée. . .
Recommandations associées :
Classe de base du framework PHP MVC
Notes sur l'écriture de votre propre framework PHP MVC
Analyse de l'implémentation du modèle PHP MVC dans l'architecture du site Web_Tutoriel PHP
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!