Dimtrovich Console
Une console PHP légère et puissante, sans framework imposé

Bonjour à tous !

Je viens vous présenter un projet sur lequel je travaille depuis quelques mois : Dimtrovich Console.

Le constat

Si vous avez déjà eu besoin de créer un outil en ligne de commande en PHP, vous avez probablement été confronté à ce choix :

- Soit vous utilisez Symfony Console ou Laravel Artisan... et vous vous retrouvez à embarquer des centaines de fichiers, des conteneurs de dépendances, tout un écosystème conçu pour des frameworks entiers, juste pour faire quelques commandes simples.
- Soit vous faites du "from scratch"... et vous passez votre temps à réinventer la roue : parsing des arguments, gestion des couleurs, affichage des tableaux, etc.

La solution

Dimtrovich Console se positionne pile au milieu. C'est une surcouche puissante construite au-dessus de l'excellente librairie adhocore/cli (dont je suis contributeur). Mention spéciale à @adhocore pour son travail qui m'a servi de base solide.

Les points forts :

- Légèreté : 1 seule dépendance (adhocore/cli), pas de framework imposé
- Simplicité : Vous n'importez que ce dont vous avez besoin
- Richesse : Des fonctionnalités aussi avancées que les grosses solutions

Fonctionnalités

Malgré sa légèreté, le package propose tout ce dont on peut rêver pour une console :

Alertes stylisées, badges colorés, barres de progression animées avec statistiques, spinners, graphiques ASCII (barres, camemberts), tableaux, grilles, menus interactifs, auto-complétion, art ASCII pour les bannières, 8 thèmes visuels (sombre, clair, solarisé, monokai, etc.), internationalisation avec traductions françaises intégrées, et même des notifications desktop.

Installation


composer require dimtrovich/console


C'est tout. Pas de configuration, pas de providers à enregistrer, pas de conteneur à initialiser.

Un exemple complet


use Dimtrovich\Console\Command;
use Dimtrovich\Console\Application;

class BackupCommand extends Command
{
    protected string $name = 'backup:run';
    protected string $description = 'Lance une sauvegarde';

    public function handle()
    {
        $this->alert()->info('Début de la sauvegarde', 'BACKUP');
        
        $this->withProgressBar(5, function($bar) {
            for ($i = 0; $i < 5; $i++) {
                sleep(1);
                $bar->advance();
            }
        });
        
        $this->alert()->success('Sauvegarde terminée !');
        $this->chart(['BDD' => 45, 'Fichiers' => 35, 'Logs' => 20], 'pie');
    }
}

$app = Application::create('Mon Outil', '1.0.0')
    ->withLocale('fr')
    ->withTheme('dark')
    ->withCommands([BackupCommand::class])
    ->run();


Pour qui ?

Ce package est fait pour vous si vous développez un outil autonome sans vouloir embarquer un framework entier, si vous avez besoin d'une console dans un projet legacy sans tout réécrire, ou si vous êtes simplement sensible à la taille de vos dépendances.

Documentation

Le README est très complet (et en français !) :
Smiley url https://github.com/dimtrovich/php-console[/url]

Vos retours

C'est mon premier package dont j'en parle en public. J'aimerais vraiment avoir vos avis : la documentation est-elle claire ? Des fonctionnalités manquantes ? Des bugs ? N'hésitez pas à tester et à me faire vos retours !

Liens

- GitHub : https://github.com/dimtrovich/php-console (les étoiles et vos éventuels PR sont les bienvenues et me feraient un grand plaisir!)
- Packagist : https://packagist.org/packages/dimtrovich/console

Merci d'avance pour vos retours !
Modifié par Dimtrovich (13 Feb 2026 - 22:47)