运行 来自 Artisan Command 控制器的方法?
Running method from Controller in Artisan Command?
在我的自定义 Artisan 命令中,我从我的数据库中获取项目列表,我想遍历它们并通过我的 DownloaderController 中的方法 运行 它们。我怎样才能做到这一点?最佳做法是什么?
DownloadCommand.php
public function handle()
{
$files = File::all();
foreach($files as $file)
{
// downloadFile method belongs to DownloadController
downloadFile($file);
}
}
DownloadController.php
public function downloadFile($file)
{
// some example logic to download file
if(wget($file))
{
$file->status = 'Downloaded';
}
else
{
$file->status = 'Failed';
}
$file->save();
}
负责获取数据的逻辑不应包含在您的控制器中。为此创建一个存储库(或专门的服务),并将其注入您的命令。
在我的自定义 Artisan 命令中,我从我的数据库中获取项目列表,我想遍历它们并通过我的 DownloaderController 中的方法 运行 它们。我怎样才能做到这一点?最佳做法是什么?
DownloadCommand.php
public function handle()
{
$files = File::all();
foreach($files as $file)
{
// downloadFile method belongs to DownloadController
downloadFile($file);
}
}
DownloadController.php
public function downloadFile($file)
{
// some example logic to download file
if(wget($file))
{
$file->status = 'Downloaded';
}
else
{
$file->status = 'Failed';
}
$file->save();
}
负责获取数据的逻辑不应包含在您的控制器中。为此创建一个存储库(或专门的服务),并将其注入您的命令。