我有自己的库类,用于从外部网站收集数据(使用curl)。此类具有接收参数(例如URL,xpath)和方法updateDatabase的构造函数。如何将参数传递给构造函数并在app内部调用方法updadeDatabase?这种方法应该被解雇,例如每天两次没有用户请求(使用cron)所以我不希望在控制器中插入此代码并创建适当的路由。怎么做?
class Source
{
public function __construct(Http $http, array $params)
{
...
}
public function updateDatabase()
{
...
}
}
答案 0 :(得分:0)
你最好的选择可能是创造一个工匠命令。这使您可以从命令行(或cron作业)在Laravel框架内运行代码。
可以找到创建工匠命令所需的所有信息here。
基本上,在命令的fire()
方法中,您可以执行以下操作:
public function fire() {
$source = App::make('Source'); // or however you instantiate your class
$source->updateDatabase();
// output a message to the command line
$this->info('All done.');
}
如果您需要传递参数和选项,您的命令也可以从命令行获取参数和选项。
上面链接的文档会告诉您需要知道的所有内容。