CSV ファイルからメーリング リストをインポートするシステムを開発しています。それを達成するために、モデルの次のコードで Eloquent ORM を使用して、すべての電子メールを CSV からデータベースにインポートしていますTarget
。
public function importCSV($file)
{
$destination = 'uploads/';
$file->move($destination, $file->getClientOriginalName());
$csv = new parseCSV();
$csv->auto($destination . $file->getClientOriginalName());
// There must be a Email field in CSV file
if(!in_array('Email', $csv->titles))
throw new Exception("Email field not found", 1);
foreach($csv->data as $data)
{
$this->cont++;
$mailing = new Mailing();
$mailing->target()->associate($this);
$mailing->email = $data['Email'];
$mailing->save();
}
}
通常、CSV ファイル全体をインポートするには時間がかかるため、このプロセスをバックグラウンドで実行したいと考えています。shell_exec()
、the operator & in the end
などのようなツールがいくつかあることを私は知っていますcrontab
...
しかし、コマンドラインScopeでEloquent ORMをどのように使用できるかさえわかりません。Laravelフレームワーク内でのみ機能する多くの依存関係があるため、使用php script_that_imports.php
は機能しません
バックグラウンド コードを実行しながら、フレームワーク機能を使用する方法について何かアイデアはありますか?