基础概念
入口文件
一般是public文件里面的index.php,他主要负责tp 的请求,是一切数据输入和输出的入口。
应用
一般存在application ,里面包含了,完整请求,数据处理和输出。这里表示是一个网站。
模块
一般存在application 里面,比如index文件和admin文件,这里对应的是前台模块和后台模块。
控制器
在application/index/controller 里面,这里是写业务逻辑的。!注意新建的控制器名称必须首字母大写下面写一个范例。比如新建Index.php控制器里面编写代码
<?php
//声明命名空间
namespace app\index\controller;
//声明控制器,控制器的名字必须和文件的名字一致
class Index{
//下面编写的是控制器方法
public function index(){
return 123;
}
}
?>
操作或者叫做方法
是用来编写具体业务的。上面的例子 public 里面的就是方法。
模型
在application/index/model,这个是负责数据相关操作的,当然也有引入到控制器里面去操作的。
视图
在application/index/view ,用来控制页面样式。
可以理解外php为了让代码阅读性更好,加入的就代表地址。是一个绝对路径就可以了。
方法的调用
跨控制器调用
有三个方法
- 用命名空间调用,这里是直接实例化控制器User。
<?php
namespace app\index\controller;
class Index
{
public function index()
{
//这里是直接实例化,命名空间方法。
$User= new User;
return $User->index();
}
}
- 用use导入 ,如果有重名用as 起别名。
<?php
namespace app\index\controller;
use app\index\controller\User as Li;
class Index
{
public function index()
{
//这里是实例化控制器
$User=new Li;
return $User->index();
}
}
- 用系统助手函数controller(),来操作。
<?php
namespace app\index\controller;
class Index
{
public function index()
{
$User= controller('User');
return $User->index();
}
}
方法调用
有三种情况,分别为,调用当前控制器方法,调用其他控制器方法和,调用其他模块下面的控制器方法。
- 调用当前控制器的方法
<?php
namespace app\index\controller;
class Index
{
public function index()
{
echo $this->eding().'<hr>';
echo self::eding().'<hr>';
echo Index::eding().'<hr>';
echo action('eding').'<hr>';
}
public function eding(){
return "我是前台 index模块下面的eding方法";
}
}
- 调用其他控制器的方法
<?php
namespace app\index\controller;
class Index
{
public function index()
{
//这里用命名空间来操作
$user= new User;
echo $user -> index();
echo '<hr>';
//这里用系统函数来操作
echo action('User/index');
}
}
- 调用其他模块的方法
<?php
namespace app\index\controller;
class Index
{
public function index()
{
//这里用命名空间来操作
$user= new \app\admin\controller\Index;
echo $user -> index();
echo '<hr>';
//这里用系统函数来操作
echo action('admin/index/index');
}
}