PHP 未捕获错误 : Class not found using composer autoload

标签 php composer-php classnotfoundexception autoloader

我正在使用 SymfonyConsole 包编写一个简单的项目,但我遇到了类未找到异常:

PHP Fatal error:  Uncaught Error: Class 'Project\ExtractLinkCommand' not found in /home/PhpstormProjects/RVLE/RVLE.php:9
Stack trace:
#0 {main}
  thrown in /home/PhpstormProjects/RVLE/RVLE.php on line 9

我找不到问题所在,有人说自动加载器不是标准的,你应该自己编写。 我还更新了 Composer 并运行了composer dump-autoload

这是我的文件 ->

RVLE.php:

#!/usr/bin/env php
<?php
require 'vendor/autoload.php';

use Project\ExtractLinkCommand;
use Symfony\Component\Console\Application;

$app = new Application('RVLE' , '1.0');
$app->add(new ExtractLinkCommand());
$app->run();

extractCommand.php:

<?php namespace Project;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;

class ExtractLinkCommand extends Command
{
    public function configure()
    {
        $this->setName('getLinks')
            ->setDescription('extract all available video links for given page url')
            ->addArgument('url', InputArgument::REQUIRED, 'page link');
    }

    public function execute(InputInterface $input, OutputInterface $output)
    {
        $url = $input->getArgument('url');    
        $output->writeln($url);
    }
}

composer.json:

{
  "require": {
    "symfony/console": "^3.3"
  },
  "autoload": {
    "psr-4": {
      "Project\\": "src/"
    }
  }
}

这是我的项目结构:

.
├── composer.json
├── composer.lock
├── RVLE.php
├── src
│   └── extractCommand.php
└── vendor
    ├── autoload.php
    ├── bin
    ├── composer
    ├── psr
    └── symfony

最佳答案

我认为您需要将文件名与类名相匹配,因此它应该是 ExtractLinkCommand.php,否则 Composer 自动加载器将找不到它。

关于PHP 未捕获错误 : Class not found using composer autoload,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45857234/

相关文章:

java - Android ClassNotFoundException

php - 在 Laravel 应用程序中通过 .htaccess 利用浏览器缓存无法正常工作

php - 保存序列化列中的每个值并将它们存储为格式化

php - 无法在 ubuntu 中安装 laravel(缺少 ext-zip)

laravel - 使用Composer在Laravel 4中加载CSS/JS文件吗?

php - 如何在版本中包含 Composer 本地路径

amazon-web-services - 由 : java. lang.ClassNotFoundException : com. amazonaws.transform.JsonErrorUnmarshallerV2 引起

java - 从 oracle 过程调用 java 时出现 ClassNotFoundException

php - URL 中带空格的 file_get_contents

php - 如何在application.ini中配置ZendX_JQuery?