你可以使用这个博客来做你想做的事。然后,您可以使用 cron 或其他程序来触发该操作。
总之:
首先,您需要创建一个 symfony 命令来执行您希望的功能。为此,在我们的 Bundle 中创建一个名为“Command”的文件夹,该文件夹与我们具有“Controller or Resources”的级别相同,并在我们的类中命名。该名称必须以“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