注意:下文的application文件夹简写为app文件夹
thinkphp 使用MVC模式,它强制性的使应用程序的输入、处理和输出分开,使用MVC程序被分成三个核心部件:模型(M)、视图(V)、控制器(C),他们各自处理自己的任务。
http://www.tp.com/index.php/Index/index/index
协议/域名/入口文件/模块/控制器/方法
一个应用代表一个网站
文件地址:应用\public\index.php
作用:负责处理请求
模块地址:app\index
作用:网站所有的前台相关都与其相关
新建模块:在app目录下创建admin文件夹,并在文件夹中创建model、view、controller文件夹,在controller文件夹中创建控制器,方法见4.控制器
控制器目录:app\index\controller
作用:书写业务逻辑
新建控制器(以前台为例)
// 声明命名空间(我理解为声明该文件所在的位置)
namespace app\index\controller;
// 声明控制器
class User
{
function index()
{
echo 'user控制器下的index方法';
}
}
?>
3.地址栏访问
http://www.tp.com/index.php/index/User/index
4.注意:
1.操作地址
操作一般都在控制器的文件中
2.新建一个操作(以前台index控制器为例)
1.打开前台index控制器(app\index\controller\Index.php)
2.在控制器新建test方法
public function test()
{
return "我是用户自己创建的方法";
}
3.地址栏访问
http://www.tp.com/index.php/index/Index/test
1.数据模型地址(app\index\model)
2.作用:负责数据库相关的处理
1.页面地址(app\index\view)
2.作用:其实就是网站页面
与目录相关(以前台index控制器为例)
项目\app\index\controller的命名空间是
namespace app\index\controller;
// 调用当前模块的其他控制器
function diaoyong(){
// 方法一:使用命名空间
$model=new \app\index\controller\User;
$model->index();
// 方法二:使用use,在开头处加上use \app\index\controller\User;
$model=new User;
$model->index();
// 方法三:使用系统方法
$model=controller('User');
$model->index();
}
// 调用其他模块的控制器中的方法
function diaoyongs(){
// 方法一:使用命名空间
$model=new \app\admin\controller\User;
$model->index();
echo '
';
// 方法二:使用use,在开头处加上use \app\admin\controller\User as AdminUser;
$model=new AdminUser;
$model->index();
echo '
';
// 方法三:使用系统方法
$model=controller('admin/User');
$model->index();
}
// 调用当前控制器的方法
function fangfa(){
// 方法一(this指向当前控制器)
$this->diaoyongs();
// 方法二(self指向当前控制器)
self::diaoyongs();
// 方法三(直接使用当前控制器)
Index::diaoyongs();
// 方法四(action)
action('diaoyongs');
}
// 调用其他控制器中的方法
public function fangfas(){
// 方法一
$model=new \app\index\controller\User;
$model->index();
echo '
';
// 方法二
action('User/index');
}
// 调用其他模块中的方法
public function mokuai(){
// 方法一
$model=new \app\admin\controller\User;
$model->index();
echo '
';
// 方法二
action('admin/User/index');
}
作用:
作用:
1. 引导基础文件
2. 对应用进行运转
作用:
1. 加载系统常量
2. 载入Loader类(项目\thinphp\library\think\loader.php)
3. 引入环境变量
4. 注册自动加载机制
5. 注册异常处理机制(项目\thinkphp\library\think\Error.php)
6. 加载惯例配置(项目\thinkphp\convention.php)