您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
thinkphp5学习笔记-扩展
发布时间:2018-06-14 21:48:39编辑:雪饮阅读()
类库扩展:
有时候thinkphp所提供的类中没有满足我们业务需要的时候,我们可能就需要自定义或者载入其它类,如邮箱类等.
准备:
在application同级目录的extend目录中建立org=>util目录
然后将你的类文件放进该目录,并设置类文件的命名空间为org\util
比如我的一个xy.php类文件:
<?php
namespace org\util;
class xy{
public function xytest(){
echo "my is xyTest";
}
}
?>
此时我们只需要在要使用该类的控制器中加入use org\util\xy即可调用:
$xy=new xy();
$xy->xytest();
类库扩展-指定应用:
上面的类库扩展是全局性质的不仅仅是在默认的application应用中。
如果要单独指定某个应用使用如application使用,则:
在application中建立common=>util=>xy.php:
<?php
namespace app\common\util;
class xy{
public function xytest(){
echo "my is application xyTest";
}
}
?>
然后控制器中调用时导入命名空间:
use app\common\util\xy;
然后就可以直接调用了:
$xy=new xy();
$xy->xytest();
日志驱动的扩展:
有时候我们用框架自身的这些驱动不是很方便,比如我们希望再有错误发生的时候将错误发送给相关负责人,这样就会比较优雅了。
在config.php中日志设置默认是这样:
'log' => [
// 日志记录方式,内置 file socket 支持扩展
'type' => 'File',
// 日志保存目录
'path' => LOG_PATH,
// 日志记录级别
'level' => [],
],
那么我们自定义如:
'log'=> [
'type' => 'driver\log\Mobile',
//下面两个参数是自定义的
'yw_mobile' => 18510937143,
'phper_mobile' => 15829270113,
//这里我们只负责error类型的错误
'level'=>['error']
],
然后建立自定义日志处理类:
在extend中建立driver->log->Mobile.php:
<?php
namespace driver\log;
class Mobile{
protected $config=[];
public function __construct($config=[]){
if(is_array($config)){
$this->config=array_merge($this->config,$config);
}
}
//save方法是该类必须要实现的方法,其参数就是config中日志配置段的整个数组
public function save($error){
echo "错误已经发给{$this->config['yw_mobile']}运维和{$this->config['phper_mobile']}";
p($error);
}
}
?>
然后控制器中使用如:
先要在控制器中use think\Log;
try{
$a=10/0;
}
catch(\think\Exception $e){
Log::error($e);
}
关键字词:thinkphp5,扩展