想建一个仓库存储一下这些代码,专门存储一些有用的代码片段,或者重构前和重构后的代码。
害怕遇到这样子的代码!!!
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[$type] ?? array_shift($this->typeMethods);
// 动态分类处理
$this->$method($request);
return back()->with('status', '创建完成');
}
/**
* 普通文章的存储
*/
protected function storeCommonArticle()
{
// do something
}
/**
* 视频文章的存储
*/
protected function storeVideoArticle()
{
}
/**
* 图片文章的创建
*/
protected function storePictureArticle()
{
}
}
大伙都来秀一下自己见过或者用过的优秀代码。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.