服务

在CmlPHP中Server层是可选的,增加Server层的目的主要是为了让代码更加的可复用。比如表单搜索的处理,某应用中对图片上传扩展的二次封装,调用接口api,api单独封装成扩展返回原始格式,而当前应用中多处需要将api的返回值做格式化处理,此时在Server中封装成单独的Server给多个Controller调用,做到代码可复用和更高的抽象化

服务使用说明

我们创建一个UploadServer.php用来处理文件上传的逻辑,在其内部对文件上传的扩展进行封装

  1. <?php namespace web\Server;
  2. use Cml\Config;
  3. use Cml\Server;
  4. use Cml\Vendor\UploadFile;
  5. class UploadServer extends Server
  6. {
  7. /**
  8. * 上传图片
  9. */
  10. public static function uploadImage()
  11. {
  12. $uploadFile = new UploadFile(array(
  13. 'subDir' => true,
  14. 'subDirType' => 'date'
  15. ));
  16. if ($uploadFile->upload(Config::get('upload_file_root').'images')) {
  17. die('{"file" : "'.$uploadFile->getSuccessInfo()[0]['savename'].'", "id" : "'.$_POST['id'].'"}');
  18. } else {
  19. die('{"error" : 102, "message" : "'.$uploadFile->getErrorInfo().'", "id" : "'.$_POST['id'].'"}');
  20. }
  21. }
  22. }

可以看到 类似Controller Server的命名空间是以应用名\Server开始,且类名必须加上Server后缀,继承 \Cml\Server基类

当然了这边也不仅限于Server你还可以建类型Logic等等 命名空间记得把Server改成Logic即可

原文: http://doc.cmlphp.com/devintro/server/readme.html