Php Laravel Artisan命令和存储库数据类型检查
我正在寻找帮助,在我正在从事的一个小型Laravel4项目中实施一些最佳实践。我下面的代码片段被简化,以帮助理解我试图理解的内容Php Laravel Artisan命令和存储库数据类型检查,php,oop,laravel,repository,Php,Oop,Laravel,Repository,我正在寻找帮助,在我正在从事的一个小型Laravel4项目中实施一些最佳实践。我下面的代码片段被简化,以帮助理解我试图理解的内容 注意存储库片段: ... public function deleteNotesOlderThan($days) { if (!is_int($days)) { /* @TODO - Something here and return error possibly NULL? */ } $date = new \Carbo
注意存储库片段:
...
public function deleteNotesOlderThan($days)
{
if (!is_int($days)) {
/* @TODO - Something here and return error possibly NULL? */
}
$date = new \Carbon\Carbon();
$date = $date->subDays($days);
Note::where('created_at', "<", $date)->delete();
}
...
正如您在我的命令中所看到的,我正在检查以确保$days再次是一个整数。我想我的问题是,这里最好的做法是什么。如果我正在执行$this->note->deleteNotesOlderThan($days),并且这个特定的方法已经确保$days是一个int,那么给出一个错误的最佳方法是什么,但却会使事情干涸?我希望这是有道理的
提前感谢。在您的功能中
public function deleteNotesOlderThan($days)
{
if (!is_int($days)) {
return FALSE;
}
$date = new \Carbon\Carbon();
$date = $date->subDays($days);
Note::where('created_at', "<", $date)->delete();
return TRUE;
}
这就是我要做的。谢谢!最后我做了这样的事情。
public function deleteNotesOlderThan($days)
{
if (!is_int($days)) {
return FALSE;
}
$date = new \Carbon\Carbon();
$date = $date->subDays($days);
Note::where('created_at', "<", $date)->delete();
return TRUE;
}
public function fire()
{
$days = $this->option('days');
if (!$days) {
$days = 30;
}
if($this->note->deleteNotesOlderThan($days)){
$this->info('Success - Notes older than ' . $days . ' days(s) have been deleted.');
}else{
$this->error("Failure - The 'Days' option must be a valid integer");
}
}