想建一个仓库存储一下这些代码,专门存储一些有用的代码片段,或者重构前和重构后的代码。 害怕遇到这样子的代码!!!
举个栗子:
- 多 ID 查找
class ArticleController { public function index(Request $request) { $ids = $request->input('ids'); // 得到的是字符串数组,转成整型 ['2', '4', '6'] foreach ($ids as &$id) { $id = intval($id); } $articles = Article::whereIn($ids)->get(); return $articles; } // 用原生 PHP 函数减少代码量 public function resonIndex(Request $request) { $ids = $request->input('ids'); // 得到的是字符串数组,转成整型 ['2', '4', '6'] $ids = array_map('intval', $ids); $articles = Article::whereIn($ids)->get(); return $articles; } } - 多类型文章创建
class ArticleController { public function store(Request $request) { $articleData = $request->only(['title', 'type', 'body']); // 普通文章 if ($articleData['type'] == 1) { // do something } // 视频文章 elseif ($article['type'] == 2) { // do something } // 图片文章 elseif ($article['type'] == 3) { // do something } else { // 默认存储普通文章 } return back()->with('status', '创建完成'); } } - 之后
<?php class ArticleController { // 文章类型对应的方法 protected $typeMethods = [ 'storeCommonArticle', 'storeVideoArticle', 'storePictureArticle' ]; public function store(Request $request) { $type = $request->input('type'); $method = $this->typeMethods[$ype] ?? array_shift($this->typeMethods); // 动态分类处理 $this->$method($request); return back()->with('status', '创建完成'); } /** * 普通文章的存储 */ protected function storeCommonArticle() { // do something } /** * 视频文章的存储 */ protected function storeVideoArticle() { } /** * 图片文章的创建 */ protected function storePictureArticle() { } } 大伙都来秀一下自己见过或者用过的优秀代码。
