f-oris/easy-console

2.0.1 2021-04-25 14:12 UTC

This package is auto-updated.

Last update: 2024-04-25 20:47:24 UTC


README

基于Laravel artisan框架提取的简易终端交互扩展包

Build Status codecov Latest Stable Version Latest Unstable Version Total Downloads License

安装使用

环境要求

  • >=php-5.5

通过composer安装

composer require f-oris/easy-console:^2.0

基本用法

1. 准备工作

通过composer引入扩展包后,在项目带埋目录创建一个Console目录,里面创建一个子文件夹Commands,一个Application.php类文件,同时在项目根目录创建一个入口文件,如命名为artisan,各文件相关内容如下

-- Application.php文件内容

<?php

namespace Demo\Console;

/**
 * Class Application
 */
class Application extends \Foris\Easy\Console\Application
{
    /**
     * Register the commands for the application.
     *
     * @throws \ReflectionException
     */
    protected function commands()
    {
        parent::commands();
        $this->load(__DIR__ . '/Commands');
    }
}

-- artisan 文件内容

#!/usr/bin/env php
<?php

require __DIR__ . '/vendor/autoload.php';

$app = new \Demo\Console\Application(__DIR__);

$app->run();

创建完毕后,项目的主要相关目录结构如下

.
├── app
│   └── Console
│       ├── Application.php
│       └── Commands
├── artisan
├── composer.json
├── composer.lock
├── test.php
└── vendor

app为composer.json文件中,根命名空间对应的文件目录

2. 创建自定义命令

在项目根目录下,通过扩展包自带指令make:command,创建一个自定义命令HelloCommand

php artisan make:command HelloCommand

命令创建完毕后,在src/Commands目录找到HelloCommand.php文件,以在控制台输出Hello world为例,编写业务代码代码,代码如下

<?php

namespace Foris\Easy\Console\Demo\Commands;

use Foris\Easy\Console\Commands\Command;

/**
 * Class HelloCommand
 */
class HelloCommand extends Command
{
    /**
     * Command name
     * 
     * @var string 
     */
    protected $name = 'hello';
    
    /**
     * Command description 
     * 
     * @var string 
     */
    protected $description = 'This is a demo command.';
    
    /**
     * Execute the console command.
     */
    protected function handle()
    {
        $this->line('Hello world');
    }
}

返回到项目根目录下,执行命令php artisan hello即可在终端输出文字内容Hello world

License

MIT License

Copyright (c) 2019-present F.oris us@f-oris.me