05-27
<h1>1. 阿里服务</h1>
<h2>composer 依赖</h2>
<h4>半自动原生 sdk</h4>
<p>"alibabacloud/sdk": "^1.0"</p>
<h4>oss 相关的 sdk</h4>
<p>"aliyuncs/oss-sdk-php": "^2.3"</p>
<h4>oss 的 sts 相关</h4>
<p>"hpyer/aliyun-sts": "dev-master"</p>
<p>原生的参考 <a href="https://help.aliyun.com/document_detail/32106.html?spm=a2c4g.11186623.2.24.5d831388U0leUN#section-m2g-jwr-kfc">https://help.aliyun.com/document_detail/32106.html?spm=a2c4g.11186623.2.24.5d831388U0leUN#section-m2g-jwr-kfc</a></p>
<p><a href="https://help.aliyun.com/document_detail/32106.html?spm=a2c4g.11186623.6.827.21da30ffFMGNYb">https://help.aliyun.com/document_detail/32106.html?spm=a2c4g.11186623.6.827.21da30ffFMGNYb</a></p>
<p><a href="https://www.alibabacloud.com/help/zh/doc-detail/28763.html?spm=a2c5t.10695662.1996646101.searchclickresult.154be01cMwVn79">https://www.alibabacloud.com/help/zh/doc-detail/28763.html?spm=a2c5t.10695662.1996646101.searchclickresult.154be01cMwVn79</a></p>
<h4>签名的sdk</h4>
<p><a href="https://help.aliyun.com/document_detail/31926.html?spm=a2c4g.11186623.2.18.3b5649e89CkOO9#concept-en4-sjy-5db">https://help.aliyun.com/document_detail/31926.html?spm=a2c4g.11186623.2.18.3b5649e89CkOO9#concept-en4-sjy-5db</a></p>
<h5>签名中 policy 的规则</h5>
<p><a href="https://help.aliyun.com/document_detail/31988.html?spm=a2c4g.11186623.2.10.2a535bcfPJq6GE">https://help.aliyun.com/document_detail/31988.html?spm=a2c4g.11186623.2.10.2a535bcfPJq6GE</a></p>
<h2>功能设计</h2>
<h4>需要对外提供的功能</h4>
<ol>
<li>
<p>前台 oss 的 sts 授权 (前端小程序原生请求上传)</p>
</li>
<li>
<p>后台 oss 的 sts 授权 (前端使用sdk上传)</p>
</li>
<li>
<p>前台 云点播 的 sts 授权 (前端小程序原生请求上传)</p>
</li>
<li>
<p>后台 云点播 的 sts 授权 (前端使用sdk上传)</p>
</li>
<li>
<p>通过 url 上传视频到云点播</p>
</li>
<li>直接上传到云点播</li>
</ol>
<h4>目录规划</h4>
<h4>sdk 划分</h4>
<h4>封装返回规范 (阿里的 sdk 成功请求会返回数据,否则抛出异常)</h4>
<h1>2. 单元测试</h1>
<p>引入依赖</p>
<p>创建文件</p>
<h4>如何指定某个测试用例运行</h4>
<p>命名不要以 test 开头,在办法上面加上 @test 的才运行</p>
<pre><code>/**
* @test
*/
public function Case()
{
$this->assertEquals(0, 1);
}</code></pre>
<h1>3.增加运营人员的接口权限</h1>
<h4>办法1 :在代码里直接增加</h4>
<pre><code> /**
* 设置不需要登录的的Action,不加Action前缀
* @return array
*/
protected function noLogin()
{
// 以下Action不需要登录权限
return [
'不需要登录验证的办法名'
];
}
/**
* 设置不需要权限验证的Action,不加Action前缀
* @return array
*/
protected function noAuth()
{
// 以下Action不需要角色权限
return [
'不需要角色权限的办法名'
];
}</code></pre>
<h4>办法2:</h4>
<p>先在在 lite_admin_auth 加上控制器、路由名称
<img src="https://www.showdoc.cc/server/api/common/visitfile/sign/46e00ed3f85ddc87c1eb928138a59880?showdoc=.jpg" alt="" /></p>
<p>然后在lite_admin_group_auth 加上auth_id = 上面的id,group_id = 2 (运营)
<img src="https://www.showdoc.cc/server/api/common/visitfile/sign/a550774929b03658132c485e0bc95242?showdoc=.jpg" alt="" /></p>
<h1>水印业务</h1>
<h4>查询水印宽高</h4>
<pre><code>select height ,width, COUNT(0) from lite_articles GROUP BY height ORDER BY COUNT(0) </code></pre>