继承方法1
调用控制器下的通用方法
修改appliction文件夹文件名,需修改public/index.php文件中
APP_PATH,此文件修改方式不适用TP5.1
common\controller\User.php:
<?php
namespace app\common\controller;
class User
{
public function showName($name='')
{
return "my name is {$name}";
}
}
index\controllcer\User.php:
<?php
namespace app\index\controller;
use app\common\controller\User as commonUser;
class User extends commonUser
{
public function demo()
{
return $this->showName("kiki");
}
}
application下如果使用common文件夹中文件,文件不能直接URL调用访问,如果使用需要use一下:
use app\common\controller\Index as commonIndex;
class Index
{
public function common()
{
$common = new commonIndex();
return $comminIndex->index();//返回index方法
}
}
修改 application 和 public 目录下的 index.php 文件配置
注意:common 模块比较特殊,如何访问?如图
在应用目录app下创建common模块 此模块为公共模块 不允许url直接访问
有用的东西,
use 写文件路径,调用一个文件,
new 实例化一个类,
$model->index(),使用一个方法
控制器文件名开头需要大写,是Index.php不是index.php;
否则页面会访问不了
common下类的引用
common里存放通用方法,不能被访问,只能在其他模块中引用。
1、都使用app作为根命名空间(可配置更改)
2、common模块 是公共模块 不允许在url上访问
可以在admin模块下引用common 代码如下:
<?php
namespace app\admin\controller;
use app\common\controller\Index as commonIndex;
class Index
{
public function index()
{
return "this is admin Index index";
}
public function common(){
$common=new commonIndex();
return $common->index();
}
}
?>3、可以把application目录修改成app
在app\public\index.php 修改定义应用目录
common模块无法访问,需要在其他模块下调用
通用的控制可以写在common中,它不允许url直接访问
公共模块的调用

127.0.0.1/index.php/index/Index/common
需使用这种链接方式
common模块默认不能通过url访问,可以在里面定义通用方法
注意文件名的大小写!
在application/目录下创建common模块
创建common下的控制器Index的Index类且加上index()方法,如图:
此时是不能直接去访问common/index/index的,这是thinkphp的一个规定,因为我们在很多项目中很多模块是一些通用的方法是需要有一个地方来放置,那么thinkphp默认将common设置成一个公用的模块,并且不允许直接在url上访问。
那如何使用这个公用模块下的方法呢?
在其它模块中可以调用公用模块下的方法,如图:
这样设置的好处是:如果有通用的控制器,那么就可以写在common模块中,这样也可以很安全,因为common是不允许url访问的,同时也减少了很多不必要的重复代码的编写。也可以放其它模块所依赖的库文件
使用common模块的index控制器的index方法
2-4模块设计
1、命名空间
namespace app\admin\controller;
2、使用公共模块common并通过as重新起名
use app\common\controller\Index as commonIndex;
在方法中可以对commonIndex实例化并使用
如:$common = new commonIndex(); $common->index();方法
3、
namespace是命名空间 后面接的是路径(需要一致),class Index定义类名(注意I的大写),public function index()是编写方法,index Index index分别是index模块下的Index控制器下的index方法,网址搜索localhost/index/index/index即可查看,同样方法做admin,搜索为localhost/admin/index/index,common是规定的,不能直接创建,可在
app的重命名:www下重命名后,在public下的index.php 将application改为app
namespace app\index\controller;
use app\common\controller\User as commonUser;
class User extends commonUser
{
public function demo()
{
return $this->showName("imooc");
}
}
common文件夹不允许直接访问,但可以调用,可将一些通用类写入这里
namespace app\index\controller;
use app\common\controller\Index as commonIndex;
class Index
{
public function index()
{
return "this is index Index index";
}
public function common()
{
$common=new commonIndex();
return $common->index();
}
}
隐藏入口文件index.php
如果使用的是phpstudy环境套件,照官方设置后还要修改一下.htaccess文件
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
改成:
RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]
开启调试模式
config/app.php文件中找到
// 显示错误信息
'show_error_msg' => false,
把false改成 true
在application/目录下创建common模块
创建common下的控制器Index的Index类且加上index()方法,如图:

此时是不能直接去访问common/index/index的,这是thinkphp的一个规定,因为我们在很多项目中很多模块是一些通用的方法是需要有一个地方来放置,那么thinkphp默认将common设置成一个公用的模块,并且不允许直接在url上访问。
那如何使用这个公用模块下的方法呢?
在其它模块中可以调用公用模块下的方法,如图:

这样设置的好处是:如果有通过的控制器,那么就可以写在common模块中,这样也可以很安全,因为common是不允许url访问的,同时也减少了很多不必要的重复代码的编写。也可以放其它模块所依赖的库文件