Lau*_*tiu 1 php cron doctrine symfony doctrine-orm
我尝试在cron作业中使用doctrine,我尝试从堆栈中遵循一些建议并找到使用
ContainerAwareCommand
但是内核似乎有问题,每次都找不到他,这里是我简单的cron命名空间Site\Bundle\AdminBundle\Services\Cron;
class EuropatourCron extends \Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand
{
protected function configure() {
parent::configure();
$this->setName("updateInfo")
->setDescription("Update db with offert from Europatours.at")
->addArgument('install');
}
protected function execute(\Symfony\Component\Console\Input\InputInterface $input, \Symfony\Component\Console\Output\OutputInterface $output) {
$toDo = $this->getContainer()->get('doctrine')->getRepository('SiteAdminBundle:Europatoursofertacron')->findBy(array(
'status' => 0
));
$output->writeln(\Doctrine\Common\Util\Debug::dump($toDo));
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的测试文件:
// application.php
require_once 'vendor/autoload.php';
require_once 'src/Site/Bundle/AdminBundle/Services/Crons/EuropatourCron.php';
use Site\Bundle\AdminBundle\Services\Cron\EuropatourCron;
use Symfony\Component\Console\Application;
$application = new Application();
$application->add(new EuropatourCron);
$application->run();
Run Code Online (Sandbox Code Playgroud)
我试着找到了这个错误的共鸣但没有找到:
PHP致命错误:在第42行的/var/www/europatur/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Command/ContainerAwareCommand.php中调用未定义的方法Symfony\Component\Console\Application :: getKernel()
您不需要创建文件来运行命令,您可以忽略您application.php的命令并在命令行中运行(在您的项目路径中)
php app/console updateInfo
Run Code Online (Sandbox Code Playgroud)