1绑警、公共操作有什么用求泰?如何創(chuàng)建公共操作?
class Index
{
protected $lesson; //定義一個變量
public function __construct($lesson='thinkphp5') //使用構(gòu)造函數(shù)來初始化$lesson
{
$this->lesson = $lesson;
}
public function demo1()
{
return (new self('php中文網(wǎng)www.php.cn))->lesson; //new self()實例化了一個新對象并把新內(nèi)容給了$lesson计盒,又用->lesson指向了對象中的$lesson變量渴频,return這個新值
}
public function demo2()
{
return $this->lesson; //返回當(dāng)前對象中$lesson的值,構(gòu)造函數(shù)
}
}
如果當(dāng)前的控制器繼承自基類Controller北启,因為在Controller中有一個初始化的方法卜朗。
我們可以在當(dāng)前Index控制器類中繼承Controller類,然后重寫這個初始化的方法_initialize()就可以了咕村。
<?php
namespace app\index\controller;
use think\Controller;
class Index extends Controller
{
protected $lesson;
public function _initialize($lesson='thinkphp5')
{
$this->lesson = $lesson;
}
/***************注意下方的改變****************/
public function demo1()
{
$this->_initialize('歡迎來到php中文網(wǎng)學(xué)習(xí)');
return $this->lesson;
}
/********************************************/
public function demo2()
{
return $this->lesson;
}
}
?>
如果有多個控制器需要共享一些操作應(yīng)該怎么做呢场钉?
參照數(shù)據(jù)共享的方法,可以創(chuàng)建一個公共控制器類懈涛。
2逛万、公共控制器類有什么用?如何創(chuàng)建公共控制器批钠?
創(chuàng)建了公共控制器類后泣港,讓這個公共類繼承自基類Controller,然后把一些公共操作寫到這個公共類中价匠,以后我們創(chuàng)建的控制器只要繼承這個公共類就可以当纱,不用直接繼承基類Controller了。
如何實現(xiàn)呢踩窖?
在app\index\controller文件夾下新建Base.php文件坡氯,內(nèi)容:
<?php
namespace app\index\controller;
class Base extends \think\Controller
{
protected $siteName = 'PHP中文網(wǎng)';
protected function test()
{
return '歡迎來到'.$this->siteName.'學(xué)習(xí)thinkphp5開發(fā)技術(shù)';
}
}
?>
index.php文件中的內(nèi)容:
<?php
namespace app\index\controller;
class Index extends \app\index\controller\Base
{
public function demo()
{
return $this->siteName;
}
public function demo1()
{
return $this->test();
}
}
?>