Symfony 控制台命令教程介绍了如何在 Symfony 中创建控制台命令。 我们将在控制台应用中创建几个命令。
Symfony 控制台组件
Symfony 控制台组件使我们可以创建命令行命令。 控制台命令可用于创建 cronjob,导入,批处理作业或某些支持性任务。 Symfony 控制台命令可以在 Symfony 控制台应用或 Web 应用中使用。 在本教程中,我们将为控制台应用创建命令。
Symfony 控制台命令示例
在以下示例中,我们使用 Symfony Console 组件创建 Symfony 控制台应用。
我们创建一个项目目录并找到它。
我们安装console
软件包。
composer.json
我们更新composer.json
文件。 我们启用App
名称空间下src
目录中的 PHP 类的自动加载。
创建文件后,我们需要调用composer dump-autoload -o
命令,该命令将创建一个将类映射到 PHP 文件的文件。
在应用中,我们将有五个命令:
- TimeCommand-显示当前日期和时间
- MessageCommand-显示来自用户输入的消息
- ColorCommand-以彩色显示消息
- BooksCommand-在表格中显示书籍列表
- AskNameCommand-交互式询问用户名
这些命令在src/Command
目录中创建。 社区必须扩展Symfony\Component\Console\Command
并实现其configure()
和execute()
方法。
之后,将命令与add()
一起添加到Symfony\Component\Console\Application
。
src/Command/TimeCommand.php
TimeCommand
显示当前日期和时间。
在configure()
中,我们使用setName()
设置命令的名称。 名称将显示在可用命令列表中。 我们还为命令添加了描述和帮助。
InputInterface
用于从用户获取输入,OutputInterface
用于显示输出。 在我们的例子中,我们使用标准 ISO 格式的date()
获取当前日期和时间,并使用writeln()
将其输出到控制台。
src/Command/MessageCommand.php
MessageCommand
打印从用户的参数检索到的消息,并将其输出到控制台。
该参数可以是必需的,也可以是可选的。 InputArgument::REQUIRED
值使该参数成为必需参数。
我们从输入中检索带有getArgument()
的参数,然后使用writeln()
将该参数写入控制台。
src/Command/ColorCommand.php
ColorCommand
以彩色输出文本。
在这种情况下,我们使用内置的info
格式样式。
我们还可以使用OutputFormatterStyle
创建自定义输出样式。 我们的redt
以红色显示文字。
src/Command/BooksCommand.php
BooksCommand
使用表格助手以表格格式输出数据。
我们创建一个Table
帮助器的实例。
我们建立表。 表标题标题由setHeaderTitle()
指定。 header
名称由setHeaders()
指定。 最后,将数据与setRows()
相加。
该表使用render()
呈现。
src/Command/AskNameCommand.php
AskNameCommand
使用问题助手来请求用户输入。
使用getHelper()
创建一个问题帮助器。
创建一个新的Question
问题。 第二个参数是默认值。
问题通过ask()
激活。 用户输入存储在$name
变量中。
我们使用sprintf()
从用户输入构建消息。
最后,该消息在终端中显示为writeln()
。
使用Symfony\Component\Console\Application
创建一个新的 Symfony 应用。
Application.php
我们用五个命令创建一个 Symfony 控制台应用。
创建一个新的控制台应用。
我们向应用添加命令。
应用从run()
启动。
我们可以获得命令列表。
我们运行 books 命令。
我们运行时间命令。
在本教程中,我们在 Symfony 控制台应用中创建了五个控制台命令。
我们运行 ask 命令。
您可能也对以下相关教程感兴趣: Symfony 简介, Symfony 验证教程, Symfony Flash 消息, Symfony 服务教程 , Symfony 表单教程, PHP 教程。