提问者:小点点

CONTAINERAWARECOMAND与get原则


我尝试在cron作业中使用原则,我尝试按照堆栈中的一些建议进行操作并找到使用方法

ContainerWareCommand

但内核似乎有问题,每次都找不到他,这里是我的简单cron名称空间站点\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));
    }
}

这是我的测试文件:

// 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();

我试图找到这个错误的原因,但没有找到:

PHP致命错误:在/var/www/europatur/vendor/Symfony/Symfony/src/Symfony/Bundle/FrameworkBundle/Command/containerwarecommand中调用未定义的方法Symfony\Component\Console\Application::getKernel()。php在线42


共1个答案

匿名用户

运行命令不需要创建文件,您可以忽略应用程序。php,只需从命令行(在项目路径内)运行即可

php app/console updateInfo