PHPackages                             eoko/zf-console - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [CLI &amp; Console](/categories/cli)
4. /
5. eoko/zf-console

ActiveLibrary[CLI &amp; Console](/categories/cli)

eoko/zf-console
===============

1.0.0(10y ago)13931BSD-3-ClausePHPPHP &gt;=5.5

Since Jun 28Pushed 10y ago3 watchersCompare

[ Source](https://github.com/eoko/zf-console)[ Packagist](https://packagist.org/packages/eoko/zf-console)[ Docs](https://github.com/eoko/zf-console)[ RSS](/packages/eoko-zf-console/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (1)Dependencies (12)Versions (1)Used By (1)

Zf-Console
==========

[](#zf-console)

[![Build Status](https://camo.githubusercontent.com/4ac98c0aa68f8aa2329717ad5485614040c028bfaf726a989d2a4071a017738a/68747470733a2f2f7472617669732d63692e6f72672f656f6b6f2f7a662d636f6e736f6c652e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/eoko/zf-console)[![Coverage Status](https://camo.githubusercontent.com/3a07ac3e806d418a8fe099870bd25393059b86fbcfdab7e9a5e8e8ba70f68734/68747470733a2f2f636f766572616c6c732e696f2f7265706f732f656f6b6f2f7a662d636f6e736f6c652f62616467652e737667)](https://coveralls.io/r/eoko/zf-console)[![Eoko Public Channel](https://camo.githubusercontent.com/856a07301792e5e14f19493396bbbc52a58d943b0f9026c0fb69e7a57c5c37aa/687474703a2f2f736c61636b696e2e656f6b6f2e66722f62616467652e737667)](http://slackin.eoko.fr/)

Goals
-----

[](#goals)

Output in Console by using pseudo-language and a very flexible structure. For example :

```
$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

```

Controller Plugin
-----------------

[](#controller-plugin)

In CLI, inside any controller you have access to a new plugin `message`.

### Output styling text

[](#output-styling-text)

For styling, we have pre-register formatter on shortcode.

```
$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]');
```

### Output text with variable

[](#output-text-with-variable)

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

Quick Example
-------------

[](#quick-example)

```
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]');
    }
}
```

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity14

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity56

Maturing project, gaining track record

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

3977d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/5574f099c9ba539d4018f5735650cc47b3312ea31a0d5b15c0d7e072efe7bdc9?d=identicon)[iam\_merlin](/maintainers/iam_merlin)

---

Tags

consolezf2eoko

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/eoko-zf-console/health.svg)

```
[![Health](https://phpackages.com/badges/eoko-zf-console/health.svg)](https://phpackages.com/packages/eoko-zf-console)
```

###  Alternatives

[symfony/console

Eases the creation of beautiful and testable command line interfaces

9.8k1.1B11.3k](/packages/symfony-console)[psy/psysh

An interactive shell for modern PHP.

9.8k545.6M719](/packages/psy-psysh)[nunomaduro/collision

Cli error handling for console/command-line PHP applications.

4.6k331.8M8.5k](/packages/nunomaduro-collision)[nunomaduro/termwind

It's like Tailwind CSS, but for the console.

2.5k239.8M286](/packages/nunomaduro-termwind)[wp-cli/php-cli-tools

Console utilities for PHP

68325.0M367](/packages/wp-cli-php-cli-tools)[radnan/rdn-console

Zend Framework 2 Symfony Console module

1021.9k3](/packages/radnan-rdn-console)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
