我指定我不是Symfony的初学者。这不是关于创建控制器,而是当我尝试创建控制器时遇到的错误。我还指定它是关于一个已经存在的网站,其中包括大约10个控制器。
为了创建一个控制器,我尝试了几种方法:
- 手动从零开始创建控制器
- 复制粘贴现有控制器
- 用命令行通过方法:
symfony console make:controller NomController
无论如何,我得到了以下错误:
从资源“../src/"导入服务时,应在文件“C:\wamp64\www\dev\nom-site\src\Controller\NomController.php”中找到类“App\Controller\NomController”,但未找到!请检查C:\wamp64\www\dev\nom-site\src\Kernel.php中与资源一起使用的命名空间前缀(从“C:\wamp64\www\dev\nom-site\src\Kernel.php”导入)。
显然,NomController
类存在于NomController.php
文件中,并且:
- 这里没有语法错误,因为我已经尝试过使用一个空的和几乎空的类。
- 我清除了var > cache中的缓存
下面是services.yaml
文件:
services:
_defaults:
autowire: true
autoconfigure: true
App\:
resource: '../src/'
exclude:
- '../src/DependencyInjection/'
- '../src/Entity/'
- '../src/Kernel.php'
- '../src/Tests/'
我测试添加一个新的
- 服务在src\Service\TestService.php中。
- 输入src\Form\Type\TestType. php
我有完全相同的错误。事实上,这不是一个特定于控制器的问题。它可以是一个修改,以便symfony在缓存中保留所有的PHP类(性能增益)。
1条答案
按热度按时间6yt4nkrj1#
有多种原因可能导致此问题。
1.检查您的类名和命名空间(区分大小写)
在本例中,类名必须为
NomController
,命名空间为App\Controller\NomController
,并且位于src/Controller/NomController
中2.检查语法错误
奇怪的是,这个错误可能会因为其他原因而弹出,比如缺少冒号;
3.查看composer.json中的自动加载配置
使用symfony默认配置,它应该看起来像这样:
然后可以运行
composer dump-autoload
来手动生成vendor/autoload.php
文件(供index.php使用)。