• Symfony2 Console Component开发


          在Symfony2中可以用命令行调用并运行你的程序,这在需要设置定时任务时十分方便。我们只需把要执行的逻辑操作按照框架命令行接口的格式写好,然后通过终端进入项目根目录,运行命令即可。

         一、在Bundle下新建一个文件夹Command用来存放我们要编写的命令 runCommand.php

    <?php

    /**
    * Description of runCommand
    *
    * @author dluf
    */
    namespace Acme\DemoBundle\Command;

    use Symfony\Bundle\FrameworkBundle\Controller\Controller;
    use Symfony\Component\Console\Command\Command;
    use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand;
    use Symfony\Component\Console\Input\InputArgument;
    use Symfony\Component\Console\Input\InputInterface;
    use Symfony\Component\Console\Input\InputOption;
    use Symfony\Component\Console\Output\OutputInterface;

    class runCommand extends ContainerAwareCommand{

    protected function configure()
    {
    $this
    ->setName('Dluf:dluf')
    ->setDescription('Call Dluf')
    ->addArgument('name', InputArgument::OPTIONAL, 'Check Dluf')
    ->addOption('yell', null, InputOption::VALUE_NONE,
    'If set, the task will yell in uppercase letters')
    ;
    }

    protected function execute(InputInterface $input, OutputInterface $output)
    {
    $name = $input->getArgument('name');
    $show = $name.$this->viewshow();
    print_r("-------------------".$show."------------------------------");
    }

    private function viewshow(){
    return date('Y-m-d H:i:s',time())."开始执行命令";
    }

    }

    ?>

    二、在bundle下编写个application调用该命令

    #!/usr/bin/env php
    # app/console
    <?php
    use Acme\DemoBundle\Command\runCommand;
    use Symfony\Component\Console\Application;
    
    $application = new Application();
    $application->add(new runCommand);
    $application->run();
    
    ?>

    三、用终端调用该命令,如图所示:命令被执行,打印出我们定义的字符串

  • 相关阅读:
    BlockingQueue 原理 分析
    java引用 强引用,软引用,弱引用
    actomic cas无锁操作。
    MongoDB库设计原则及实践
    spring事物传播机制 事物隔离级别
    Hive UDAF介绍与开发
    [技术学习]js接口继承
    [技术学习]js继承
    [技术学习]正则表达式分析
    [技术学习]js正则表达式汇总
  • 原文地址:https://www.cnblogs.com/dluf/p/2864062.html
Copyright © 2020-2023  润新知