kovsky0/tooler-framework

一个用于快速开发命令行界面工具的简约PHP框架。

dev-master 2018-05-18 10:37 UTC

This package is not auto-updated.

Last update: 2024-09-18 05:00:35 UTC


README

一个用于快速开发命令行界面工具的简约PHP框架。

安装

可以使用Composer安装Tooler。

composer create-project kovsky0/tooler-framework -s dev

理念

此项目的主要理念是创建一个用于快速开发CLI工具的简约框架。它提供简单的目录结构和访问基本助手,用于:解析输入、格式化输出以及提示用户输入。

快速入门(三步简单操作)

步骤1:构建新命令

创建项目后,您可以通过'tooler build'命令构建您的命令

php tooler build two-plus-two

它将自动创建以下文件

  • ./two-plus-two,您可以使用它通过'php two-plus-two'运行您的命令
  • ./Commands/TwoPlusTwo/TwoPlusTwoCommand.php,您可以使用它来指定您的命令应该做什么

!!! 重要:为了保持一致性,请使用短横线("-")分隔单词。

步骤2:定义命令应执行的操作

在以下文件中添加您的逻辑到'execute'方法

./Commands/TwoPlusTwo/TwoPlusTwoCommand.php

例如

<?php
namespace ToolerFramework\Commands\TwoPlusTwo;

use ToolerFramework\Commands\StandardCommand;

class TwoPlusTwoCommand extends StandardCommand
{
   public function execute()
   {
       echo 2+2;
   }
}

步骤3:运行您的命令

通过键入来运行您的命令

php two-plus-two

基本用法

可用命令

通过键入,您可以查看tooler的可用命令

php tooler help

以下命令可用

php tooler build <new-command-name>

构建新命令。

php tooler rename <old-command-name> <new-command-name>

重命名命令。

php tooler remove <command-name>

删除命令及其所有相关文件。

可用助手

有3个助手可供您使用(如果您的命令扩展了"StandardCommand",默认情况下是如此)。

$this->input

您可以通过引用 $this->input 在您的代码中使用它。

  • $this->input->command - 被调用的命令名称
  • $this->input->flags - 所有已使用的短横线(-)和长横线(--)标志
  • $this->input->arguments - 所有其他已使用的参数

$this->output

您可以通过引用 $this->output 在您的代码中使用它。

  • $this->output->write("示例文本", "白色", "红色") - 将给定的文本输出到控制台,第一个颜色是字体颜色,第二个颜色是背景颜色。
  • $this->output->writeln("示例文本", "白色", "红色") - 将给定的文本输出到控制台,并在末尾带有换行符。
  • $this->output->writeln(array("行1", "行2", "第三行"), "白色", "红色") - 在新的一行中输出数组的每个元素。
  • $this->output->message("标题: ", "消息的长时间文本体") - 输出多行消息,其中文本根据提供的标题对齐。请看下面的例子:标题:文本文本文本文本文本文本文本文本
  • $this->output->warning("这是一个自定义警告") - 输出带有 "WARNING: " 标题的消息,红色背景和白色字体颜色。
  • $this->output->info("这是一个自定义信息") - 输出带有 "INFO: " 标题的消息,蓝色背景和白色字体颜色。
  • $this->output->success("这是一个自定义成功消息") - 输出带有 "SUCCESS: " 标题的消息,绿色背景和白色字体颜色。

可用字体颜色

  • '黑色'
  • '深灰色'
  • '蓝色'
  • '浅蓝色'
  • '绿色'
  • '浅绿色'
  • '青色'
  • '浅青色'
  • '红色'
  • '浅红色'
  • '紫色'
  • '浅紫色'
  • '棕色'
  • '黄色'
  • '浅灰色'
  • '白色'

可用的背景颜色

  • '黑色'
  • '红色'
  • '绿色'
  • '黄色'
  • '蓝色'
  • '品红色'
  • '青色'
  • '浅灰色'

$this->prompt

您可以在代码中通过引用 $this->prompt 来使用它。

  • $this->prompt->prompt("你最喜欢的颜色是什么?") - 提示自定义文本
  • $this->prompt->confirm("你确定要继续吗? [y/n]") - 提示一个是或否的问题
  • $this->prompt->multipleChoice(array("blue", "yellow", "green", "red")) - 提示一个多项选择题,默认情况下 - 只能选择一个选项
  • $this->prompt->multipleChoice(array("blue", "yellow", "green", "red"), null, true) - 提示一个多项选择题,用户可以选择多个选项
  • $this->prompt->getResponse() - 返回用户的输入
  • $this->prompt->getConfirmationResponse() - 对于以 'y' 或 'Y' 开头的任何内容返回 true,对于其他所有内容返回 false
  • $this->prompr->getMultipleChoiceResponse() - 返回多项选择题中用户的选项

待办事项

  • 添加单元测试
  • 重构 CommandsFileManager.php
  • 为辅助函数添加接口
  • 将表格格式化器添加到 Output.php 辅助函数