无法使Symfony 3控制台正常工作 - 自动加载问题

时间:2016-03-23 11:44:48

标签: command-line-interface symfony autoloader

我需要有关Symfony 3控制台组件的帮助。

我无法使用它,我的自定义类总是会出现致命错误。

这里是代码:

clhelper.php

#!/usr/bin/env php
<?php

require __DIR__.'/vendor/autoload.php';

use Symfony\Component\Console\Application;
use CLHelper\FilesSorterCommand;

$application = new Application();
$application->add(new FilesSorterCommand());
$application->run();

FilesSorterCommand.php

namespace CLHelper;

use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;

/**
 * Files Sorter
 */
class FilesSorterCommand extends Command
{
    protected function configure()
    {
        $this
            ->setName('files:sort')
            ->setDescription('Sortiert Dateien mit bestimmter Endung.')
            ->addArgument(
                'extension',
                InputArgument::REQUIRED,
                'Welche Dateiendung?'
            )
            ->addArgument(
                'folder',
                InputArgument::OPTIONAL | InputArgument::IS_ARRAY,
                'Welche Ordner (Mehrfachangabe möglich)'
            );
    }

    protected function execute(InputInterface $input, OutputInterface $output)
    {
        $extension = $input->getArgument('extension');

        $output->writeln($extension);
    }
}

如果我尝试使用php clhelper.php运行此CL应用程序,则会收到错误消息:

  

PHP致命错误:Class&#39; CLHelper \ FilesSorterCommand&#39;在第10行的/Users/xyz/Sites/Symfony/clhelper/clhelper.php中找不到

     

致命错误:Class&#39; CLHelper \ FilesSorterCommand&#39;在第10行的/Users/xyz/Sites/Symfony/clhelper/clhelper.php中找不到

1 个答案:

答案 0 :(得分:1)

在@cerad评论之后,我将其添加到我的composer.json并成功:

"autoload": {
    "psr-4": {
        "CLHelper\\": ""
    }
}

现在工作正常。