当前位置: 首页 > 知识库问答 >
问题:

Symfony 4:可以找到文件,但找不到类

陶宏浚
2023-03-14

遵循文档中的示例:

https://symfony.com/doc/current/page_creation.html

我遇到这个错误消息:

自动加载程序期望类"App\Controller\LuckyController"定义在文件"/var/www/my-project/供应商/作曲家/.../... /src/Controller/LuckyController.php”。找到该文件,但类不在其中,类名或命名空间可能在 /var/www/my-project/config/services.yaml中有一个错别字(它加载在资源"/var/www/my-project/config/services.yaml"中)。

在"src/Controller/LuckyController.php"中,我有:

namespace App\Controller;  
use Symfony\Component\HttpFoundation\Response;  
class LuckyController {  
  public function number() {   
    $number = mt_rand(0, 100);  
    return new Response('<html><body>Lucky number: '.$number.'</body></html>');  
  }  
}

在服役中。yml,我有:

parameters:

services:
    _defaults:
        autowire: true      
        autoconfigure: true 
        public: false       

    App\:
        resource: '../src/*'
        exclude: '../src/{Entity,Migrations,Tests}'

    App\Controller\:
        resource: '../src/Controller'
        tags: ['controller.service_arguments']

我不确定为什么找不到类“App\Controller\LuckyController”。我想知道是否有人能帮忙。非常感谢!

共有2个答案

施永宁
2023-03-14

此错误可能是由类定义中的任何语法错误引起的。我花了半个小时在类似以下的情况下调试它:

<?php

namespace App\MyServices;

class MyClass
{
   private $firstAttr;
   private $secondAttr
   private $thirdAttr;

   public function foo($bar)
   {
      // ...
   }
}

您必须在这里找到的是在$其次dattr定义之后缺少的分号。如果命名空间和文件名正确,请检查接口、父类和特性是否也是如此。并仔细检查这种句法错误,也可以从性状中“导入”。

牟焱
2023-03-14

在我添加'

关于艾伯特的评论,这是我的composer.json。请注意,当我按照留档中的示例操作时,此文件似乎是由作曲家要求添加和修改的。到目前为止,我还没有自己手动编辑过。

{"type":"project","许可证":"专有","要求":{"php":"^7.1.3","ext-iconv": "*", "seno/框架-额外包":"^5.1","senolabs/security-检查器":"^4.1","symfony/apache-pack":"^1.0","Symfony/控制台":"^4.0","Symfonby/flex":"^1.0","Symfony/framed-bundle":"^4.0","Symfony/lts":"^4@dev","Symfony/要求检查器":"^1.0","Symfony/twig-bundle":"^4.0","Symfony/yaml":"^4.0"},"需要-开发":{"symfony/dotenv":"^4.0","symfony/suriler-pack":"^1.0","symfony/感谢":"^1.0","symfony/web-server-bundle":"^4.0"},"config":{"首选-安装": { "*": "dist"},"sort-包": true},"autoload":{"psr-4":{"App\\":"src/" } }, "autoload-dev":{"psr-4":{"App\\tests\\":"测试/" } }, "替换":{"symfony/Poly填充-iconv": "*", "symfony/polfle-php71": "*", "symfony/polfle-php70": "*", "symfony/polfle-php56": "*" }, "脚本":{"自动脚本":{"缓存:清除":"symfony-cmd","资产:安装--symlink--相对%PUBLIC_DIR%":"Symfony-cmd","需求检查器":"脚本","安全检查器安全:检查":"脚本"},"post-set-cmd": [ "@自动脚本"],"post-update-cmd": [ "@自动脚本" ] }, "冲突":{"symfony/symfony": "*" }, "额外的":{"symfony":{"id":"...","let-contrib": false } } }

 类似资料:
  • 没有图像很难描述: 编辑:(我不能发布一个图像,直到我有更多的声誉)。 jar存在于外部库中,包包含类('org.roblectric.AndroidManifest')。导入语句在“robolectric”之前是灰色的,但在“AndroidManifest”上是红色的。当我点击包(robolectric)时,它会将我带到正确的包,其中显然包含该类。 这是应用程序中唯一的机器人库,因此它不是在使用

  • 我使用Java ASM库编译了一个类(称为Test.class)。我决定尝试使用“java”命令运行该类,以确保已正确编译该类。 然而,当我这样做的时候,我得到了“找不到或加载主类测试”的消息。我觉得这很奇怪,因为类在当前工作目录内(我也尝试过将“.”作为类路径传递,但没有用)。然后我尝试用“javap”反汇编它,这很完美,这很奇怪,因为如果javap能找到类文件,那么java肯定也能找到吗? 这

  • 我试过如何检查keras是否使用了tensorflow的gpu版本?答复但我只认出keras没有看到GPU。 我重新安装了整个需求,包括tensorflow gpu、keras模块,甚至CUDA。 我用的是Jupyter remote ipython。 下面的列表是我安装的模块版本 我检查了以下内容: 结果: =============已添加========== 此外,我还了解了如何从python

  • 问题内容: 所以我想安装 https://www.npmjs.com/package/@progress/kendo-react- grid 该软件包存在于网站上,但是当我运行命令时 我收到404错误 想法? 到目前为止,我认为用户范围是什么 第二次尝试 问题答案: 我看着我的,这就是里面的东西 与该用于评论查看文档 我注释掉了所有4行,并且能够运行 无论出于何种原因,我都没有在https://w

  • 问题内容: 我最近一直在开发一个程序,该程序可以从Java程序编译并运行C ++程序,我已经使一切基本正常(或至少据我所知),但是后来我注意到有些东西被打印到错误流中: 如您所见,如果我通过SSH而不是Java代码进行操作,它会起作用吗? Java代码: 感谢您的任何帮助,它已得到批准! 问题答案: 告诉你问题所在。 您的一级引号过多,因此您正在寻找而不是。 该的Runtime.exec文档说:

  • 在spring Java框架中,我使用context.xml文件创建bean,然后用加载它。 我的程序抛出异常。 文件存在。我使用Gradle进行依赖关系管理,并且我的src文件夹(文件所在的位置)在intellij中标记为resource。我知道由于某种原因,即使我的src文件夹应该包含在classpath变量中,但gradle run任务只是不能从这里抓取它。 当我使用时,所有的工作都很好,但