此软件包已被 放弃 并不再维护。未建议替代软件包。

3.1.0 2019-04-08 07:37 UTC

This package is auto-updated.

Last update: 2023-02-18 21:44:58 UTC


README

Scrutinizer Code Quality

安装

composer global require nexusnetsoftgmbh/nexuscli

配置

要在您的Docker项目中使用它,您必须在根路径下创建一个“config”目录。在那里,您必须放置一个“config_default.php”文件,其内容如下

<?php

use Nexus\CustomCommand\CustomCommandConfig;
use Nexus\Dumper\DumperConfig;
use Xervice\Core\CoreConfig;
use Xervice\DataProvider\DataProviderConfig;

$config[CoreConfig::PROJECT_NAMESPACES] = [
    'Nexus',
    'Project'
];

$config[DataProviderConfig::DATA_PROVIDER_GENERATED_PATH] = dirname(__DIR__) . '/_Generated';
$config[DataProviderConfig::DATA_PROVIDER_PATHS] = [
    dirname(__DIR__) . '/src/Nexus/*/Schema/',
    dirname(__DIR__) . '/vendor/xervice/*/src/Xervice/*/Schema/',
    dirname(__DIR__) . '/vendor/nexusnetsoftgmbh/*/src/*/*/Schema/'
];

$config[DumperConfig::SSH_HOST] = '5.9.82.139';
$config[DumperConfig::SSH_USER] = 'nxsdocker';
$config[DumperConfig::PROJECT_NAME] = 'myproject';
$config[DumperConfig::IMAGE_NAME] = 'nxs-docker-dumper';
$config[DumperConfig::DUMP_DIRECTORY] = dirname(__DIR__) . '/dump';

$config[CustomCommandConfig::COMMAND_PATH] = dirname(__DIR__) . '/nxscli/commands';

DataProvider (DTO)

NEXUS CLI 使用 dataprovider 类来传输信息。为此,您必须在项目目录中 composer.json 文件旁边创建一个“_Generated”目录。如果您想使用另一个目录,您必须更改 config_default.php 中的目录路径以及在 composer.json 文件中的自动加载配置。

在使用 NEXUS CLI 之前,您必须生成 dataprovider。为此,您可以使用以下命令

vendor/bin/nxscli dataprovider:generate

用法

您必须在项目根目录中运行 nxscli 命令。这是您创建“config”目录的同一目录。

nxscli <command>

扩展

您可以创建自己的 nxscli。为此,您必须在项目根目录中创建一个“composer.json”文件。

{
  "require-dev": {
    "codeception/codeception": "*",
    "symfony/var-dumper": "*"
  },
  "require": {
    "php": ">=7.1.0",
    "nexusnetsoftgmbh/nexuscli": "dev-master"
  },
  "autoload": {
    "psr-4": {
      "NexusTest\\": "tests/Nexus/",
      "DataProvider\\": "_Generated/"
    },
    "psr-0": {
      "Nexus\\": "src/"
    }
  }
}

之后,您可以在那里创建一个 src 目录,并在其中开发自己的 Nexus-模块。您还可以从 composer 中扩展您的命令。为此,您可以要求额外的命令集用于 nexuscli。

自定义命令

如果您想添加自己的命令,您可以为自定义命令配置一个目录。命令文件名必须以“Command.php”结尾,并且您的命令类必须与您的文件名相同。您还可以为您的命令创建子目录以对它们进行分组。命名空间始终必须是“Nexus\CustomCommand\Command”。

示例自定义命令 'LsCommand.php'

<?php

namespace Nexus\CustomCommand\Command;

use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
use Xervice\Console\Business\Model\Command\AbstractCommand;

class LsCommand extends AbstractCommand
{
    protected function configure()
    {
        $this->setName('custom:ls')
             ->setDescription('List all files')
             ->addArgument('path', InputArgument::OPTIONAL, "Path for listing files", './');
    }

    /**
     * @param \Symfony\Component\Console\Input\InputInterface $input
     * @param \Symfony\Component\Console\Output\OutputInterface $output
     *
     * @return int|null|void
     * @throws \Core\Locator\Dynamic\ServiceNotParseable
     */
    protected function execute(InputInterface $input, OutputInterface $output)
    {
        $command = sprintf(
            'ls %s',
            $input->getArgument('path')
        );

        $output->writeln(
            $this->getFacade()->runShell($command)
        );
    }

}