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

composer dump autoload-o跳过所有我的类

欧阳勇
2023-03-14

我刚刚升级到Composer 2.0,它显然对解析类的方式做了一些修改。。。

作曲家转储-自动加载-o或别名作曲家du-o基本上在我的控制台中转储了很多行,文本如下:

位于C:/udvikling/MyProjectRoot/src/MyProjectClasses\MyProject\SubCategory\CoolClass.php中的类MyProject\SubCategory\CoolClass不符合psr-4自动加载标准。跳过

在阅读了Composer psr-4 autoload问题后,我确保所有构成名称空间和类路径的名称都大写。i、 e.使用myproject/helperclass现在是使用myproject/helperclass

myc:/udvikling/MyProjectRoot/src/composer.json包含以下内容

json prettyprint-override">    "autoload": {
        "psr-4": {
            "MyProject\\": "MyProjectClasses/"
        }
    }

我在类名中添加了一个前导反斜杠,从而消除了一个错误:

<?php

namespace \MyProject\Core;

class Timer {
    //...

但是根据php.net

命名空间声明中不允许使用完全限定的名称(即以反斜杠开头的名称),因为此类构造被解释为相对命名空间表达式。

所以这似乎不是正确的选择。。。(我的IDE也给了我一条愤怒的曲线……)

除了回到另一个版本的作曲家,我如何解决这个问题?

C:\udvikling\MyProjectRoot -- the root of the project
C:\udvikling\MyProjectRoot\src --the php sources
C:\udvikling\MyProjectRoot\src\MyProjectClasses -- my PHP classes
C:\udvikling\MyProjectRoot\src\vendor -- my vendor stuff for composer
C:\udvikling\MyProjectRoot\src\composer.json - my composer config

共有1个答案

沈飞跃
2023-03-14

我去做了一些额外的阅读。

显然,psr-4的目标之一是减少文件夹深度。

“src”和“tests”目录必须包括供应商和包目录名。

许多人发现这种结构比必要的更深刻、更重复。该提案表明,增加或取代PSR将是有益的[……]

很难通过对PSR-0的扩展或修改来实现面向包的自动加载,因为PSR-0不允许在类名的任何部分之间使用中间路径。

所以基本上,问题是在我的MyProjectClasses目录中,对于类MyProject\Core\Timer我把它放在一个类似的目录结构中:C:\udvikling\MyProjectRoot\src\MyProjectClasses\MyProjectClasses\Core\Timer.php
必须修改为不包括基本包:C:\udvikling\MyProjectRoot\src\MyProjectClasses\Core\Timer.php

 类似资料:
  • 为什么throw new SkipException()会跳过所有类中的所有方法? 第一类有一个失败的方法,因此该类中的其余方法将被跳过,并且跳过计数器设置为0。 类2应该执行所有方法,并且所有方法都应该在类2中传递,因为跳过计数器设置为0并且在类1执行之后。 下面的代码似乎跳过所有方法,即使只有一个assert.fail包含在类1中? 测试基地: 测试1: 测试2: 控制台输出: 测试执行XML

  • 我想我的程序跳过了while循环,但我真的不确定到底发生了什么。该函数应该通过找到GCD,然后将分子和分母除以该数字来减少分数。 我得到分子和分母的绝对值,以确保如果分数是负数,我会在最后保持它。如果分子为0,则要求我返回(0,1)。问题是关于while循环。。。似乎它被完全跳过了。有什么建议吗?

  • 有没有办法让我有条件地跳过Cucumber java中的场景? 在下面的图片中,当新闻发布部分没有可用数据时,我想跳过为数据检查编写的场景。 我计划首先检查没有可用数据的场景,如果它成功执行,然后跳过其余的场景。 添加功能文件以获得更多理解: 背景:给定主页显示当我导航到“XYZ”菜单时,应显示“新闻稿”部分 在上述文件中,如果@News 和“新闻稿”部分是否应该检查无数据存在 返回肯定的结果,然

  • 问题内容: 有没有一种方法可以获取实例中所有数据库中所有存储过程中引用的所有列和表?输出应为: 问题答案: 这将得到您想要的列表,但是,如果您在动态SQL中嵌入了此类列引用(并且可能找不到依赖于延迟名称解析的引用),则将无济于事。SQL Server不会解析存储过程的文本以提供DMV输出。 现在尝试使用子句来处理在同一服务器上具有不同归类的数据库的情况。 如果您的数据库处于80兼容模式,那么该语法

  • 问题内容: 我对如何在Java中执行此操作有一般的想法,但是我正在学习Python,但不确定如何执行。 我需要实现一个函数,该函数返回一个包含列表中所有其他元素的列表,从第一个元素开始。 到目前为止,我不确定从这里开始该怎么做,因为我只是在学习Python中的for循环是如何不同的: 问题答案:

  • 在eclipse中,它将始终运行测试