Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Confusing error about "Expected to find class ... but it was not found" #35698

Closed
javiereguiluz opened this issue Feb 13, 2020 · 1 comment
Closed

Comments

@javiereguiluz
Copy link
Member

Symfony version(s) affected: all

Description
Imagine that you are working in your Symfony app and see this error:

symfony-error

You will probably check the class name, class dir, class namespace ... everything is correct, so you double check everything and are careful about the spelling ... but nothing looks wrong.

And that's OK, because there's nothing wrong with that. The real problem is that there is a PHP syntax error in your class (e.g. a missing ; at the end of some statement).

This is really confusing and we should fix it.

How to reproduce
Create a new Symfony app (symfony new my_project), create this controller and load the app:

<?php

namespace App\Controller;

use Symfony\Component\HttpFoundation\Response;

class DefaultController
{
    public function index()
    {
        // the following line is missing the ending ';' on purpose to trigger the error
        return new Response('foo')
    }
}

Additional context
I'm using Symfony 5.0.4 and PHP 7.4.2. This is the full error trace:

Symfony\Component\Config\Exception\LoaderLoadException:
Expected to find class "App\Controller\DefaultController" in file "my_project/src/Controller/DefaultController.php" while importing services from resource "../src/*", but it was not found! Check the namespace prefix used with the resource in my_project/config/services.yaml (which is loaded in resource "my_project/config/services.yaml").

  at my_project/vendor/symfony/config/Loader/FileLoader.php:173
  at Symfony\Component\Config\Loader\FileLoader->doImport('my_project/config/services.yaml', null, false, null)
     (my_project/vendor/symfony/config/Loader/FileLoader.php:97)
  at Symfony\Component\Config\Loader\FileLoader->import('my_project/config/services.yaml')
     (my_project/vendor/symfony/dependency-injection/Loader/FileLoader.php:64)
  at Symfony\Component\DependencyInjection\Loader\FileLoader->import('my_project/config/services.yaml')
     (my_project/vendor/symfony/dependency-injection/Loader/GlobFileLoader.php:27)
  at Symfony\Component\DependencyInjection\Loader\GlobFileLoader->load('my_project/config/{services}.{php,xml,yaml,yml}', 'glob')
     (my_project/vendor/symfony/config/Loader/DelegatingLoader.php:40)
  at Symfony\Component\Config\Loader\DelegatingLoader->load('my_project/config/{services}.{php,xml,yaml,yml}', 'glob')
     (my_project/src/Kernel.php:42)
  at App\Kernel->configureContainer(object(ContainerBuilder), object(DelegatingLoader))
     (my_project/vendor/symfony/framework-bundle/Kernel/MicroKernelTrait.php:81)
  at App\Kernel->Symfony\Bundle\FrameworkBundle\Kernel\{closure}(object(ContainerBuilder))
     (my_project/vendor/symfony/dependency-injection/Loader/ClosureLoader.php:38)
  at Symfony\Component\DependencyInjection\Loader\ClosureLoader->load(object(Closure), null)
     (my_project/vendor/symfony/config/Loader/DelegatingLoader.php:40)
  at Symfony\Component\Config\Loader\DelegatingLoader->load(object(Closure))
     (my_project/vendor/symfony/framework-bundle/Kernel/MicroKernelTrait.php:84)
  at App\Kernel->registerContainerConfiguration(object(DelegatingLoader))
     (my_project/vendor/symfony/http-kernel/Kernel.php:638)
  at Symfony\Component\HttpKernel\Kernel->buildContainer()
     (my_project/vendor/symfony/http-kernel/Kernel.php:544)
  at Symfony\Component\HttpKernel\Kernel->initializeContainer()
     (my_project/vendor/symfony/http-kernel/Kernel.php:126)
  at Symfony\Component\HttpKernel\Kernel->boot()
     (my_project/vendor/symfony/http-kernel/Kernel.php:186)
  at Symfony\Component\HttpKernel\Kernel->handle(object(Request))
     (my_project/public/index.php:25)                

Symfony\Component\DependencyInjection\Exception\InvalidArgumentException:
Expected to find class "App\Controller\DefaultController" in file "my_project/src/Controller/DefaultController.php" while importing services from resource "../src/*", but it was not found! Check the namespace prefix used with the resource.

  at my_project/vendor/symfony/dependency-injection/Loader/FileLoader.php:206
  at Symfony\Component\DependencyInjection\Loader\FileLoader->findClasses('App\\', '../src/*', array('../src/{DependencyInjection,Entity,Migrations,Tests,Kernel.php}'))
     (my_project/vendor/symfony/dependency-injection/Loader/FileLoader.php:99)
  at Symfony\Component\DependencyInjection\Loader\FileLoader->registerClasses(object(Definition), 'App\\', '../src/*', '../src/{DependencyInjection,Entity,Migrations,Tests,Kernel.php}')
     (my_project/vendor/symfony/dependency-injection/Loader/YamlFileLoader.php:611)
  at Symfony\Component\DependencyInjection\Loader\YamlFileLoader->parseDefinition('App\\', array('resource' => '../src/*', 'exclude' => '../src/{DependencyInjection,Entity,Migrations,Tests,Kernel.php}'), 'my_project/config/services.yaml', array('autowire' => true, 'autoconfigure' => true))
     (my_project/vendor/symfony/dependency-injection/Loader/YamlFileLoader.php:233)
  at Symfony\Component\DependencyInjection\Loader\YamlFileLoader->parseDefinitions(array('parameters' => null, 'services' => array('App\' => array('resource' => '../src/*', 'exclude' => '../src/{DependencyInjection,Entity,Migrations,Tests,Kernel.php}'), 'App\Controller\' => array('resource' => '../src/Controller', 'tags' => array('controller.service_arguments')))), 'my_project/config/services.yaml')
     (my_project/vendor/symfony/dependency-injection/Loader/YamlFileLoader.php:153)
  at Symfony\Component\DependencyInjection\Loader\YamlFileLoader->load('my_project/config/services.yaml', null)
     (my_project/vendor/symfony/config/Loader/FileLoader.php:158)
  at Symfony\Component\Config\Loader\FileLoader->doImport('my_project/config/services.yaml', null, false, null)
     (my_project/vendor/symfony/config/Loader/FileLoader.php:97)
  at Symfony\Component\Config\Loader\FileLoader->import('my_project/config/services.yaml')
     (my_project/vendor/symfony/dependency-injection/Loader/FileLoader.php:64)
  at Symfony\Component\DependencyInjection\Loader\FileLoader->import('my_project/config/services.yaml')
     (my_project/vendor/symfony/dependency-injection/Loader/GlobFileLoader.php:27)
  at Symfony\Component\DependencyInjection\Loader\GlobFileLoader->load('my_project/config/{services}.{php,xml,yaml,yml}', 'glob')
     (my_project/vendor/symfony/config/Loader/DelegatingLoader.php:40)
  at Symfony\Component\Config\Loader\DelegatingLoader->load('my_project/config/{services}.{php,xml,yaml,yml}', 'glob')
     (my_project/src/Kernel.php:42)
  at App\Kernel->configureContainer(object(ContainerBuilder), object(DelegatingLoader))
     (my_project/vendor/symfony/framework-bundle/Kernel/MicroKernelTrait.php:81)
  at App\Kernel->Symfony\Bundle\FrameworkBundle\Kernel\{closure}(object(ContainerBuilder))
     (my_project/vendor/symfony/dependency-injection/Loader/ClosureLoader.php:38)
  at Symfony\Component\DependencyInjection\Loader\ClosureLoader->load(object(Closure), null)
     (my_project/vendor/symfony/config/Loader/DelegatingLoader.php:40)
  at Symfony\Component\Config\Loader\DelegatingLoader->load(object(Closure))
     (my_project/vendor/symfony/framework-bundle/Kernel/MicroKernelTrait.php:84)
  at App\Kernel->registerContainerConfiguration(object(DelegatingLoader))
     (my_project/vendor/symfony/http-kernel/Kernel.php:638)
  at Symfony\Component\HttpKernel\Kernel->buildContainer()
     (my_project/vendor/symfony/http-kernel/Kernel.php:544)
  at Symfony\Component\HttpKernel\Kernel->initializeContainer()
     (my_project/vendor/symfony/http-kernel/Kernel.php:126)
  at Symfony\Component\HttpKernel\Kernel->boot()
     (my_project/vendor/symfony/http-kernel/Kernel.php:186)
  at Symfony\Component\HttpKernel\Kernel->handle(object(Request))
     (my_project/public/index.php:25)                
@nicolas-grekas
Copy link
Member

Check #35557 and linked issues.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants