TP5路由
1,ThinkPHP5的路由过程,就是从入口文件开始,找到对应的方法位置。
协议---->域名---->入口文件--->模块---->控制器---->方法---->参数列表
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/