TP5.1 控制器初始化
在Tp5.1中可以使用initialize
方法进行控制器的初始化,但是当前控制器需要继承控制器基类 (think\Controller
)或者当前控制器继承的类继承了控制器基类(think\Controller
),否则initialize
方法无效
<?php
namespace app\index\controller;
use think\Controller;//继承控制器基类后 initialize 方法才能生效
class Index extends Controller
{
public function initialize()
{
echo 'initialize --';
}
public function index()
{
echo '-- index';
}
}
输出结果:initialize ---- index
如果不继承控制器基类(think\Controller
)的同时又使用初始化方法,可以使用__construct
代替
<?php
namespace app\index\controller;
class Index
{
public function __construct()
{
echo '__construct --';
}
public function index()
{
echo '-- index';
}
}
输出结果:__construct ---- index
如果initialize
方法和__construct
同时存在于当前控制器时,仅有__construct
方法生效;被继承的类若使用__construct
方法当前控制器又有需要的话也需要使用__construct
方法才行
<?php
namespace app\index\controller;
use think\Controller;
class Index extends Controller
{
public function __construct()
{
echo '__construct --';
}
public function initialize()
{
echo 'initialize --';
}
public function index()
{
echo '-- index';
}
}
输出结果:__construct ---- index
不足之处,请多指教