kerasai/console-command-loader

该包最新版本(0.0.1)没有提供许可证信息。

将容器中的服务作为控制台命令加载到Symfony中。

0.0.1 2020-04-21 00:39 UTC

This package is auto-updated.

Last update: 2024-09-21 21:16:53 UTC


README

该包为在Symfony控制台应用中使用标记为命令的服务添加了功能。

使用方法

将“console.command”标签设置到服务上,并添加“command”值。

services:
  command.compute:
    class: \Kerasai\MyApp\Command\MyCommand
    public: true
    tags:
      - { name: 'console.command', command: 'my-command' }

然后在启动控制台应用的代码中,创建服务容器并设置命令加载器。

<?php

use Kerasai\ConsoleCommandLoader\TaggedCommandLoader;
use Symfony\Component\Config\FileLocator;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;

$containerBuilder = new ContainerBuilder();
$loader = new YamlFileLoader($containerBuilder, new FileLocator(__DIR__));
$loader->load('services.yml');
$commandLoader = new TaggedCommandLoader($containerBuilder);
$app->setCommandLoader($commandLoader);

$app->run();