资讯专栏INFORMATION COLUMN

Symfony的Console组件的简单使用。

instein / 2664人阅读

摘要:本文目的是多的组件进行简单的使用。方法中设置了命令的名称,即命令中的最后一个单词方法中定义了该命令的执行过程,即输出再看看入口文件这里的方法将我们定义的添加到了命令行中。

Symfony的Console组件的简单使用。

本文目的是多Symfony的Console组件进行简单的使用。
达到这样的效果:

输入

php console test

输出

hello console.

准备工作

我们这里使用composer来进行Console组件的安装 composer安装教程

进入项目路径:

cd ~/web/project/

安装Console组件:

composer require symfony/console @stable

创建自己的代码目录:

mkdir -p src/Mycmd # 创建自己的代码目录

注册命名空间:
编辑 composer.json 文件如下,然后在命令行输入composer dump-autoload

{
   "require": {
       "symfony/console": "@stable"
   },
   "autoload": {
       "psr-4":{
           "Mycmd": "src/Mycmd"
       }
   }
}

编写命令文件

创建要执行的命令文件:
src/Mycmd 路径下创建 TestCmd.php 文件,并写入:

msg = $msg;
        parent::__construct();
    }

    protected function configure()
    {
        $this->setName("test");
    }

    protected function execute(InputInterface $input, OutputInterface $output)
    {
        $output->writeln("".$this->msg."");
    }
}

在项目根目录下,创建Console组件的入口文件 console 并写入:

#!/usr/bin/env php
add(new TestCmd("hello console"));
$application->run();

使用Console组件

在命令行中输入:

php console test

这时会看见

hello console
代码分析 首先说说我们自己的命令文件: TestCmd.php
msg = $msg;
        parent::__construct();
    }

    protected function configure()
    {
        $this->setName("test");
    }

    protected function execute(InputInterface $input, OutputInterface $output)
    {
        $output->writeln("".$this->msg."");
    }
}

代码中包含一个类 TestCmd 并继承了 Command 基类。

configure 方法中设置了命令的名称 test,即 php console test 命令中的最后一个单词

execute 方法中定义了该命令的执行过程,即输出 $this->msg

再看看入口文件 console
#!/usr/bin/env php
add(new TestCmd("hello console"));
$application->run();

这里的 $application->add() 方法将我们定义的 TestCmd 添加到了命令行中。

Symfony官方文档:
http://symfony.com/doc/current/components/console/introduction.html

日期 2016-5

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/21564.html

相关文章

  • Swoft| Swoft 框架组件化改造

    摘要:框架组件化改造框架从单体应用到组件化改造的架构升级之路经过一年多的开发框架功能越来越完善也越来越复杂初创时期的单体应用已经无法支撑项目的快速发展于是开发组在年前为版制定了组件化改造的重构方案内容速览组件化原理包管理基础知识组件化方案来 date: 2018-3-21 13:22:16title: Swoft| Swoft 框架组件化改造description: Swoft 框架从单体应...

    desdik 评论0 收藏0
  • 现在写 PHP,你应该知道这些

    摘要:首先你应该是在用以上的版本,如果版本在这之下,是时候该升级了。按照其官网的说法,这个组织的目的并不是告诉你你应该怎么做,只是一些主流的框架之间相互协商和约定。和没有出现在以上的列表中,是因为还没有投票通过。不要被这些话所困扰。 首先你应该是在用 PHP 5.3 以上的版本,如果 PHP 版本在这之下,是时候该升级了。我建议如果有条件,最好使用最新的版本。 你应该看过 PHP The R...

    supernavy 评论0 收藏0
  • PHP 5.6,7.0,7.1,7.2 和 HHVM 运行效率比较

    摘要:测试运行多次并取平均值。文章数量测试的基准测试基准测试结果基准测试结果基准测试结果基准测试结果基准测试结果基准测试结果不支持再次成为冠军请注意的运行环境需要或以上。同时,再次不能正常工作并抛出错误。 showImg(https://segmentfault.com/img/remote/1460000013690286); 我们每年都会尝试深入了解不同版本的 PHP 和 HHVM 在各...

    cnTomato 评论0 收藏0
  • PHP之内置web服务器

    摘要:首发于我的博客前言从开始,就提供了一个内置的服务器。在中的安装一节中介绍了一个命令可以使用内置服务器实现外部访问的命令。 首发于:我的博客 前言 PHP从5.4开始,就提供了一个内置的web服务器。 这个主要是用来做本地的开发用的。不能用于线上环境。现在我就介绍一下这个工具如何使用。 基础应用 首先我们假定项目目录是/home/baoguoxiao/www/php/demo,外界可访...

    MorePainMoreGain 评论0 收藏0
  • 几句话熟悉Laravel/Symfony 事件系统

    摘要:一个事件系统就这么简单。说了这么多,一句话概括事件系统就像是框架层的全局数据库,具有存储注册和触发事件功能,解耦代码,实现跨组件通信。。 我们知道,laravel/symfony 框架是由一堆堆 components 组件粘合在一起的。其中会有一个 event component 组件,比较特殊,它像一个中介,是框架层全局 component,专门负责不同component间相互通信传...

    bitkylin 评论0 收藏0

发表评论

0条评论

instein

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<