服务
在CmlPHP中Server层是可选的,增加Server层的目的主要是为了让代码更加的可复用。比如表单搜索的处理,某应用中对图片上传扩展的二次封装,调用接口api,api单独封装成扩展返回原始格式,而当前应用中多处需要将api的返回值做格式化处理,此时在Server中封装成单独的Server给多个Controller调用,做到代码可复用和更高的抽象化
服务使用说明
我们创建一个UploadServer.php
用来处理文件上传的逻辑,在其内部对文件上传的扩展进行封装
<?php namespace web\Server;
use Cml\Config;
use Cml\Server;
use Cml\Vendor\UploadFile;
class UploadServer extends Server
{
/**
* 上传图片
*/
public static function uploadImage()
{
$uploadFile = new UploadFile(array(
'subDir' => true,
'subDirType' => 'date'
));
if ($uploadFile->upload(Config::get('upload_file_root').'images')) {
die('{"file" : "'.$uploadFile->getSuccessInfo()[0]['savename'].'", "id" : "'.$_POST['id'].'"}');
} else {
die('{"error" : 102, "message" : "'.$uploadFile->getErrorInfo().'", "id" : "'.$_POST['id'].'"}');
}
}
}
可以看到 类似Controller
Server
的命名空间是以应用名\Server
开始,且类名必须加上Server
后缀,继承 \Cml\Server基类
当然了这边也不仅限于Server你还可以建类型Logic等等 命名空间记得把Server改成Logic即可