Closed
Description
Symfony version(s) affected: all
Description
Imagine that you are working in your Symfony app and see this 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)