このブログを使って、やりたいことができます。次に、cron またはその他のプログラムを使用してアクションをトリガーできます。
要約すれば:
まず、必要な機能を実行する symfony コマンドを作成する必要があります。そのために、バンドルに「コントローラーまたはリソース」と同じレベルに「コマンド」という名前のフォルダーを作成し、クラスに名前を付けます。名前は「Command」で終わらないと機能しません。「MyCommand」としましょう。
<?php
namespace Devvness\DevvnessBundle\Command;
use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
class MyCommand extends ContainerAwareCommand
{
protected function configure()
{
$this->setName('devvness:my_command')
->setDescription('Descripción de lo que hace el comando')
->addArgument('my_argument', InputArgument::OPTIONAL, 'Explicamos el significado del argumento');
}
protected function execute(InputInterface $input, OutputInterface $output)
{
$em = $this->getContainer()->get('doctrine')->getManager();
// Hacemos lo que sea
$output->writeln('Hola mundo');
$em->flush();
}
}
次に、cmd またはコンソールで実行して呼び出すことができます。
php app/console devness:mycommand
また
php app/console devness:mycommand --my_argument=valor
次に、cronファイルを編集して、Unix用のcronなどでタスクをスケジュールする必要があります
* * * * * php /root/absolute/for/symfony/project/app/console devness:mycommand --myargument=valor