gpt4 book ai didi

PHP url的pathinfo模式加载不同控制器的简单实现

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章PHP url的pathinfo模式加载不同控制器的简单实现由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

使用自动加载和解析url的参数,实现调用到不同的控制器,实现了pathinfo模式和普通的url模式 。

文件结构:

|--Controller   |--Index     |--Index.php 。

|--Application.php 。

Application.php 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<?php
class Application{
   public static function main(){
     header( "content-type:text/html;charset=utf-8" );
     self::register();
     self::router();
   }
   public static function register(){
     spl_autoload_register( "self::loadClass" );
   }
   public static function loadClass( $class ){
     $class = str_replace ( '\\' , '/' , $class );
     $class = "./" . $class . ".php" ;
     require_once $class ;   
   }
   public static function router(){
     if (isset( $_SERVER [ 'PATH_INFO' ])){
       $pathinfo = array_filter ( explode ( "/" , $_SERVER [ 'PATH_INFO' ]));
       for ( $i =1; $i <= count ( $pathinfo ); $i ++){
         $key =isset( $pathinfo [ $i ]) ? $pathinfo [ $i ] : '' ;
         $value =isset( $pathinfo [ $i +1]) ? $pathinfo [ $i +1] : "" ;
         switch ( $i ) {
           case 1:
             $_GET [ 'm' ]=ucfirst( $key );
             break ;
           case 2:
             $_GET [ 'c' ]=ucfirst( $key );
             break ;
           case 3:
             $_GET [ 'a' ]= $key ;
             break ;
           default :
             if ( $i >3){
               if ( $i %2==0){
                 $_GET [ $key ]= $value ;
               }
             }
             break ;
         }
       }
     }
     $_GET [ 'm' ]=! empty ( $_GET [ 'm' ]) ? ucfirst( $_GET [ 'm' ]) : 'Index' ;
     $_GET [ 'c' ]=! empty ( $_GET [ 'c' ]) ? ucfirst( $_GET [ 'c' ]) : 'Index' ;
     $_GET [ 'a' ]=! empty ( $_GET [ 'a' ]) ? $_GET [ 'a' ] : 'index' ;
     $class = "\\Controller\\{$_GET['m']}\\{$_GET['c']}" ;
     $controller = new $class ;
     $controller -> $_GET [ 'a' ]();
   }
}
 
Application::main();

\Controller\Index\Index.php 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
namespace Controller\Index;
 
use Service\User;
class Index{
   public function __construct(){
     echo "构造方法<br/>" ;
   }
   public function index(){
     new User();
     print_r( $_GET );
   }
   public function login(){
     echo "login()" ;
   }
}

效果:

PHP url的pathinfo模式加载不同控制器的简单实现

以上这篇PHP url的pathinfo模式加载不同控制器的简单实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我.

最后此篇关于PHP url的pathinfo模式加载不同控制器的简单实现的文章就讲到这里了,如果你想了解更多关于PHP url的pathinfo模式加载不同控制器的简单实现的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com