xmlsquad/xmlauthor-example-command

Example command for managing xml files.

v0.3.3 2018-10-14 20:43 UTC

This package is not auto-updated.

Last update: 2024-03-17 02:53:23 UTC


README

A git project that acts as an example of an xmlauthor command.

Prerequisites

Install

  • Install dependencies

    composer install
  • Try hello-world command:

    bin/hello-world --configFilename=XmlAuthoringProjectSettings.yaml.dist

Building own command

  • New commands should:

    • be written to run in a Symfony 3.4 console application. See Symfony's documentation on creating commands.have their own git repository project
    • have tests (one or more of PHPUnit/Behat/etc) stored within the project repository
    • be compatible with Symfony 3.4, and
    • make good use of the symfony/console project. i.e. $ composer require symfony/console:~3.4
    • adhere to the convention that allows the command to be automatically registered.
    • be installed by end users as a composer package
    • reuse existing libraries where possible. Such as;
    • use PSR-4 autoloading where possible.
    • be cross-platform compatible; Run on the command line on Windows 10, MacOS High Sierra and Linux.
    • provide README.md instructions on how to install and use the command from .
  • Example command:

    # src/Command/NewCommand.php
    namespace XmlSquad\PackageName\Command;
    
    use XmlSquad\Library\Command\AbstractCommand;
    
    class NewCommand extends AbstractCommand
    {
        public function __construct()
        {
            # Specify command's name
            parent::__construct('new-command');
        }
    
        /**
         * {@inheritdoc}
         */
        protected function execute(InputInterface $input, OutputInterface $output)
        {
            try {
                $configFilename = $input->getOption('configFilename');
                $configOptions = $this->getConfigOptions($configFilename);
    
                dump($configOptions);
            } catch (FileNotFoundException $e) {
                $output->writeln(
                    $e->getMessage(), OutputInterface::VERBOSITY_NORMAL
                );
            }
        }
    }

Test

vendor/bin/phpunit

TODO

[ ] Tests with virtual filesystem