elbakerino/console

此包已被废弃且不再维护。未建议替代包。

基于 GetOpt.php 的 PHP 控制台,具有依赖注入和注解功能

0.9.0 2019-12-01 19:36 UTC

This package is auto-updated.

Last update: 2023-01-29 03:46:59 UTC


README

使用依赖注入和注解构建 PHP 控制台应用程序。

使用 composer 安装应用程序骨架和依赖项

composer create-project elbakerino/console

就这样 - 准备编码吧!

运行演示命令

# get help
php cli -h

# how to access operands, see `Commands\Demo->handle`    
php cli demo
php cli demo World
php cli demo:welcome
php cli demo:bye

对于 Docker,下载仓库并启动服务

git clone https://github.com/elbakerino/console-di-annotations.git

docker-compose up

# open second terminal:
# open `bash` in docker service `app` with user `www-data`
docker-compose exec -u www-data app bash
composer install

命令设置

_commands.php 演示中,使用内联文档注册了 GetOpt-PHP 命令。

在这里,也为找到的注解注册了命令。

对于仅手动命令,它非常简洁

<?php
return static function(GetOpt\GetOpt $get_opt) {
    // already dependency injected!

    $get_opt->addCommand(new GetOpt\Command('demo', [Commands\Demo::class, 'handle']));
    //                   new GetOpt\Command(<name>,  <handler>,                     <options>[optional])
};

您可以使用注解注册命令,如演示命令 (待:注解命令文档)

请参阅 Commands\Demo 以获取示例 class 命令处理程序,任何 callable/resolvable 都可以作为命令处理程序。

请参阅 Commands\DemoMultiple 以获取使用方法级别注解而不是类级别注解的示例 class 命令处理程序。

定义命令的示例使用

php cli <name> <..operand> <..-a=opt>

更多详细信息

launch.php 中完成整个设置和自动配置,请参阅内联注释以获取详细信息。

_definitions.php 中,您可以定义/覆盖 PHP-DI 的服务定义。

请参阅 Lib\ConsoleApp 以执行 GetOpt,将其用作切换到另一个控制台框架的基类。

请参阅 Annotations 以获取示例注解,有关注解的更多文档将在以下库链接中提供。

docker-compose.yml 中配置 Docker。只需更改 PHP 版本、镜像基础和在 Dockerfile 中添加其他 PHP 扩展即可。使用 docker-compose up --build 重建镜像。当更改 docker-opcache.inidocker-vhost.conf 时,需要重新构建。

有关更多详细信息,请参阅

packagist安装您项目所需的任何其他依赖项。

待办事项

实际上不需要更多,您可以编写简单高效的控制台应用程序。

一些有用的功能包括

  • 打印行,打印成功,打印错误辅助函数
  • 彩色打印辅助函数
  • 输入处理辅助函数
  • 命令周围的某些中间件管道
    • 时间和性能中间件
  • 默认使用PSR logger(monolog)进行日志记录

下载

  • Composer Package
  • 仓库 git clone https://github.com/elbakerino/console-di-annotations.git

许可

本项目是免费软件,在MIT许可证下分发。

见:LICENSE

贡献者

通过将您的代码提交到代码仓库,您同意在仓库附带的MIT许可证下发布代码。

作者:Michael Becker