• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
孙龙 程序员
少时总觉为人易,华年方知立业难
博客园    首页    新随笔    联系   管理    订阅  订阅
laravel api代码重构

namespace App\Http\Controller;

use 省略
class LessonsController extends Controller{

public function index(){
$lesson = Lesson::all();
return \Reponse::json([
'status'=>'success',
'status_code'=>200,
'data'=>$this->transformCollection('$lesson')
])
}

private function transformCollection($lessons){
return array_map([$this,'transform'],$lessons->toArray());
}
private function transfrom($lessons){
return [
'title'=>$lessons['title'],
'content'=>$lessons['content'],
];
}

}

重构以上代码 

新建目录 App\Transformer

//新建文件Transformer

namespace App\Transformer;
abstract class Transformer{
public function transformCollection ($items){
return array_map([$this,'transform'],$items);
}
public abstract function transform($item);
}



//新建文件LessonTransformer
namespace App\Transformer;
class LessonTransformer extends Transformer{
public function transfrom($lessons){
return [
'title'=>$lessons['title'],
'content'=>$lessons['content'],
];
}
}

namespace App\Http\Controller;

use 省略
class LessonsController extends Controller{

protected $lessonTransformer;

//把LessonTransformer 注入
public function __construct(LessonTransformer $lesson){
$this->lessonTransformer=$lesson;
}
public function index(){
$lesson = Lesson::all();
return \Reponse::json([
'status'=>'success',
'status_code'=>200,
'data'=>$this->lessonTransformer->transformCollection($lesson->toArray())
])
}
}

本文来自博客园,作者:孙龙-程序员,转载请注明原文链接:https://www.cnblogs.com/sunlong88/articles/8681531.html

posted on 2018-03-31 11:37  孙龙-程序员  阅读(129)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3