Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PHP Uncaught Error: Class not found using composer autoload

I'm writing a simple project using SymfonyConsole package, but I got class not found exception:

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

I can't find what the problem, somebody says autoloader is not standard and you should write it your own. I also updated composer and ran composer dump-autoload.

Here are my files ->

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/"
    }
  }
}

This is my project structure:

.
├── composer.json
├── composer.lock
├── RVLE.php
├── src
│   └── extractCommand.php
└── vendor
    ├── autoload.php
    ├── bin
    ├── composer
    ├── psr
    └── symfony
like image 685
RuNo280 Avatar asked Jun 07 '26 15:06

RuNo280


1 Answers

I think you need to match your file name to your class name so it should be ExtractLinkCommand.php, otherwise the composer autoloader won't find it.

like image 147
Bananaapple Avatar answered Jun 09 '26 03:06

Bananaapple



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!