Tp5命名空间及路由笔记

时间:2022-09-08 09:00:14

   TP5路由

1ThinkPHP5的路由过程,就是从入口文件开始,找到对应的方法位置。

协议---->域名---->入口文件--->模块---->控制器---->方法---->参数列表

http://-->tp5.com-->index.php--->index---->user------>add--->101/peter

 

URL:http://tp5/index.php/index/user/add/101/peter

 

 

//传统url地址是如和进行路由的?

 

基本语法 : http://域名/入口文件?m=模块名&c=控制器名&a=方法名&1=1&2=2

例如 : http://tp5.com/index.php?m=index&c=user&a=add&id=101

 

http://tp5.com/index.php?m=index&c=user&a=add&id=101

域名及入口文件-------->模块----->控制器---->方法--->参数列表

 

 

传统路由对比TP5路由

序号

URL

说明

1

http://tp5.com/index.php?m=index&c=user&a=add&id=101

传统URL模式地址

2

http://tp5.com/index.php/index/user/add/101

PATH_INFO模式地址

 

 

命名空间

1,文件路径

Thinkphp/library/think/cache/driver/File.php

命名空间:namespace  think\cache\driver;

Class File{

}

实例化该类

$class = new \think\cache\driver\File();

 

根命名空间

名称

描述

类库目录

think

系统核心类库

Thinkphp/library/think

traits

系统trait类库

Thinkphp/library/traits

app

应用类库

application

增加新的根命名空间的两种方式:

// Route::get(‘hello’ , ‘index/hello’);

// \think\Route::get(‘hello’,’index/hello’);

 

自动注册:

把自己的类库包放入EXTEND_PATH目录(默认为extend,可配置),就可以自动注册对应的命名空间.

:

我们在extend目录下面新增一个my目录,然后定义一个\my\Test(类文件位于extend\my\test.php)

如下:

Namespace my;

Class Test

{

Public function sayHello()

{

Echo ‘hello’;

}

}

 

我们可以直接实例化和调用

$Test  =  new \my\Test();

$Test->sayHello();

 

应用入口文件中重新定义了EXTEND_PATH常量,还可以改变\my\Test类文件的位置

 

:

define(‘EXTEND_PATH’,’../vendor/’);

 

 

手动注册:

在应用公共文件中添加下面的代码:

 

\think\Loader::addNamespace(‘my’,’../application/extend/my/’);

 

同时注册多个根命名空间,可以使用

\think\Loader::addnamespace([

‘my’  =>  ‘../application/extend/my/’,

‘org’  =>  ‘../application/extend/org’,

 

]);

 

直接在应用的配置文件中添加配置,系统会在应用执行的时候自动注册.

‘root_namespace’  =>[

 

‘my’   => ‘../application/extend/my/’,

‘org’   => ‘../application/extend/