eoko/zf-console

1.0.0 2015-06-28 17:04 UTC

This package is not auto-updated.

Last update: 2024-09-18 09:30:31 UTC


README

Build Status Coverage Status Eoko Public Channel

目标

使用伪语言和非常灵活的结构在控制台输出。例如

$this->warn('this is not cool');
// [DONE] should output red text

$this->msg('[warn]not cool again[vvvv] with very verbose text[/vvvv][/warn]');
// [DONE] should output red text.
// [TODO] get verbosity from outside and if console is verbose, add the vvvv text

$this->msg('Hello {{username}} !', ['username' => 'merlin']);
// [DONE] should output "Hello merlin"

$this->msg('[notice]Hello {{username}} ![/notice]');
// [DONE] should output "Hello merlin" in blue
   

控制器插件

在CLI中,在任意控制器内,你可以访问一个新的插件 message

输出样式文本

为了样式,我们在简码上预注册了格式化器。

$this->message()->show('text');

$this->message()->notice('notice');
// eq to $this->message()->show('[msg fg="blue"]notice[/msg]');

$this->message()->success('success');
// eq to $this->message()->show('[msg fg="green"]success[/msg]');

$this->message()->comment('comment');
// eq to $this->message()->show('[msg fg="yellow"]comment[/msg]');

$this->message()->warn('warn');
// eq to $this->message()->show('[msg fg="magenta"]warn[/msg]');

$this->message()->danger('danger');
// eq to $this->message()->show('[msg fg="red"]danger[/msg]');


$this->message()->show('[msg fg="white" bg="red"]kkkkk[/msg]');

使用变量输出文本

$this->message()->show('[msg fg="white" bg="red"]{{text}}[/msg]', ['text' => 'My custom text']);
$this->message()->show('[warn]{{msg}}[/warn]', ['msg' => 'Warn message']);

快速示例

class IndexController extends AbstractActionController
{
    public function indexAction()
    {
        $this->message()->show('[msg level="warn"]my message : [danger]{{message}}[/danger][/msg]', array('message' => '[danger]wololo[/danger]'));
        $this->message()->show('[msg fg="white" bg="red"]warn : message {{a}}[/msg]', array('a' => 'd\'exemple!'));
        $this->message()->info('info : message {{a}}', array('a' => 'd\'exemple!'));

        /** @var Message $message */
        $message = $this->getServiceLocator()->get('eoko.console.message');
        $message->show('[comment]example[/comment]');
        return new ViewModel();
        $this->message()->show('[verbose verbosity="v"][v]this is v[/v] not [vv]vv[/vv][/verbose]');
    }
}