thinkphp 5
下载安装
https://www.kancloud.cn/manual/thinkphp5/118006
下载安装 https://getcomposer.org/Composer-Setup.exe
使用阿里镜像
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
进入 phpstudy 的 www 路径下,打开 cmd,运行如下命令安装 thinkphp 5.1.x 最新版
composer create-project topthink/think=5.1.* tp5.1 --prefer-dist
访问 http://127.0.0.1/tp5.1/public/ 可以看到安装成功
url 解析规则
thinkphp 5 url 解析规则如下
可以直接访问 http://127.0.0.1/tp5.1/public/ 或者 http://127.0.0.1/tp5.1/public/index.php 访问 thinkphp 首页
url 规则解析
- index.php 为 thinkphp 的入口文件,在 public 目录下
- 模块在 application 目录下
- 控制器在 application 下的 controller 目录下,一个 php 文件就是一个控制器(文件首字母大写;控制器可以理解为类)
- 操作可以理解为类中的方法
- 参数可以理解为方法中的变量名
- 值就是变量中传入的值
可以理解一下官方的目录
在 thinkphp 源代码 application\index\controller\Index.php
中存在一个方法,该方法的作用是传参 name 然后打印 name 的值
public function hello($name = 'Thinkphp5')
{
return 'hello,' . $name;
}
那么,调用的方法应该是访问[http://127.0.0.1/tp5.1/public/index.php/index/index/hello/name/shley](http://127.0.0.1/tp5.1/public/index.php/index/index/hello/name/shley)
命名空间
如果要自建模块的话,必须要加入命名空间
- app 代表 application
- index 表示模块
- controller 表示这是一个控制器
thinkphp 5 的 url 传参模式访问
http://127.0.0.1/tp5.1/public/index.php?s=index/index/hello/name/shley
需要在程序的入口处(http://127.0.0.1/tp5.1/public/index.php)添加 ?s=
然后后面跟模块/控制器/类/方法/参数/参数值
模块(module)设置
官方给出的模块设置目录结构如下
配置模块的文件位于 config\app.php
绑定模块
配置方法:在public\index.php
中配置
// 执行应用并响应
// 例如配置:Container::get('app')->bind('index')->run()->send();
Container::get('app')->run()->send();
效果:在 url 访问时可以省略模块路径
注意:在多模块的情况下可能导致其他模块(没有被绑定的模块)无法访问
空模块(默认模块)
配置方法:在 config\app.php 中配置
// 默认的空模块名
'empty_module' => '',
效果:当用户访问不存在的模块时,可以重定向到指定模块
注意:只有在多模块开启,且没有绑定模块的请款下生效
单一模块
配置方法:在 config\app.php 中配置
// 是否支持多模块
'app_multi_module' => true,
效果:可以删除所有的模块层级,直接创建 controller 然后加类即可,访问也是如此
环境变量
thinkphp 提供了一个类来获取环境变量
使用方法
use think\facade\Env;
...
return Env::get('root_path')
代码
效果