基础概念
入口文件
一般是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'); } }