symfony command

Posted 画地自囚工作记录

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了symfony command相关的知识,希望对你有一定的参考价值。

symfony 的command系统,有两部分构成:Application和command

1. Application是一个容器,负责对command进行管理。

2。command是每一个具体的命令。

 

Application 详细说明:

主要属性:

1. $terminal  终端,内部调用,不需要用户自己做任何控制,本属性通过配置,或者直接通过命令行的方式来确定命令展示区域的高度和宽度。在初始化函数里面直接赋值。

2. $dispatcher 事件分发,只有定义了,才会开启事件机制。

 

 

主要函数:

1. run 运行命令,是外部调用运行命令的起点。

    首先,初始化input和output

    然后,根据输入和参数,配置input和output。

    最后,调用dorun,实际运行代码。

2. dorun 命令的实际运行程序。

   2.1  version和help选项的默认处理。

   2.2 如果参数中没有命令名称,调用默认命令(默认是list)。

   2.3 根据命令名称,find(找到)对应的命令。

   2.4 调用doRunCommand,执行找到的命令。

 

3. find 根据命令名称,查找对应命令。

  3.1 commandLoader和commands合并,组成全部commands

       $allCommands = $this->commandLoader ? array_merge($this->commandLoader->getNames(), array_keys($this->commands)) : array_keys($this->commands);

 3.2 用正则查找格式跟输入命令名称匹配的命令(首先大小写一致的匹配,如果不存在,忽略大小写,重新匹配一次),找不到对应命令,直接扔异常。

 3.3 根据名称,检查commandLoader和commands中是否存在此命令,如果commandLoader中存在,加到commands中,从数组commands中读取对应command。

 

4. doRunCommand  针对当前command,运行对应的run函数,并且生成各种事件。

 

command类

 

主要函数:

1. execute 命令的执行逻辑,需要用户补全。

2. configure 配置函数,运行前补全

3. run,实际被application调用的函数,本函数调用excute运行。

 

以上是关于symfony command的主要内容,如果未能解决你的问题,请参考以下文章

Symfony控制器教程已开课

symfony/skeleton 和 symfony/website-skeleton

WordPress 作为 Symfony (Symfony3) 子目录

Symfony 4 捆绑包工作

从 Symfony 3.4 升级到 4:升级 symfony 时出错

symfony2的中文视频教程更新中(原创),对Symfony感兴趣的学员可以看下