图片生成有"yiisoft/yii2-imagine": "~2.1.0", 库,
安装:
sudo curl -O ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick.tar.gz
extension=imagick.so
安装 freetype
问题 1. 只是简单生成一段文字(几百个字符)和加水印, 就很慢(30s左右),效率远不如直接使用GD库函数
问题 2. 文字水印-中文乱码!!
侦测文字编码: echo $encoding = mb_detect_encoding(" in view 中国人 the", array("ASCII","UTF-8","GB2312","GBK","BIG5"));
编码转换 : iconv("GB2312", "UTF-8", $msg_line);
Yii queue 的使用:
ttr 需要 PHP Process Control (pcntl) extension
php.ini 中 pcntl 相关的函数不能被禁用
github文档: https://github.com/yiisoft/yii2-queue/blob/master/docs/guide/worker.md
Yii 测试:
文档:https://github.com/yiisoft/yii2-app-advanced/blob/master/docs/guide/start-testing.md
https://codeception.com/for/yii
命令:php vendor/bin/codecept run api
models 中 fields 方法 有三种 方式 提供 回调:
- 直接写 匿名函数,参数 按调用要求写
- 闭包 可以比调用时的传参数 提供更多的参数
- 使用 类 中 方法 来写,好处:简洁,一行搞定
'cover_image'=> ApiHelper::imageUrl('cover_image'),
'cover_image'=> function ($model, $field) {
return $model->$field;
},
'cover_image' => [ApiHelper::class, 'imageFull'],
widget组件: select2部件
使用方式有两种,使用form 和不使用 form这两种。
<?php
$selectHtml = Select2::widget([
'id' => 'select_99',
'name' => 'state_2',
'value' => '',
'data' => $majors,
'options' => [
'multiple' => false,
'placeholder' => 'Select states ...',
'options' => $options
]
]);
$selectHtml = str_replace("\r\n", " ",$selectHtml);
echo str_replace("\n", "", $selectHtml);
?>
<?php
// Usage with ActiveForm and model
echo $form->field($model, 'major_id')->widget(Select2::class, [
'data' => $majors,
'options' => [
'placeholder' => 'Select a state ...',
//'options' => $isDisable
'options' => $options,
],
'pluginOptions' => [
'allowClear' => true,
''
],
]);
?>