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

找不到PHP编写器自动加载PSR-4类

曹泉
2023-03-14

我启动了一个新的PHP项目,并希望使用PSR-4从composer自动加载。

项目结构如下:

project

__src

____model

_______User.php

__test

_____UserTest.php

__vendor

__composer.json

这是我的作曲家。json:

{
    "autoload": {
        "psr-4": {
            "src\\model\\": "model/"
        }
    }
}

这是我的ser.php

<?php
namespace model;

class User
{
    public function doSomething() {
        return true;
    }
}

还有用户测试。php

<?php
use model\User;

class UserTest extends PHPUnit_Framework_TestCase
{
    public function test(){
        $user = new User();
        $this->assertTrue($user->doSomething());
    }
}

当我运行单元测试时,我得到以下消息:

致命错误:找不到类“model\User”。

共有1个答案

茅涵映
2023-03-14

你的composer.json文件是错误的。它应该是

{
    "autoload": {
        "psr-4": {
            "model\\": "src/model/"
        }
     }
}
 类似资料:
  • 我和许多其他人一样,似乎很难弄清楚何时以及如何使用自动加载。我想我理解作曲家和PSR-0/PSR-4的概念和这需要的目录结构。但是如果我用自己的MVC框架构建自己的项目 > 由于composer自带了自动加载器,它将加载我希望包含在项目中的所有依赖项,如果我不打算将我的网站变成分布式项目,我甚至需要自己的名称空间吗?为什么我不坚持使用include/requires? 最后,如果我采用名称空间,使

  • 我正在使用一些phpunit测试类尝试composer autoload,但我似乎无法让它工作。当我从命令行运行phpunit时,我得到以下错误:“PHP致命错误:Class…notfound”。 我将提供所有的结构和文件信息。我可以,所以希望有人能发现我的错误。 结构(精简为相关文件): composer.json phpunit.xml 测试/功能/基本测试用例。php 测试/功能/主页测试。

  • 我有一个在本地运行良好的Laravel项目(Mavericks),但是psr-4下的类没有加载到我们的后台服务器(CentOS)上。每次尝试composer更新或运行artisan命令时,我都会收到一个反射“未找到类”错误。 我的所有特定于应用程序的类都存储在我的Laravel项目的app/heatherland下,例如: 我的composer.json包含以下条目: 在本地,psr-4类被添加到

  • 1. 概述 本 PSR 是关于由文件路径 自动载入 对应类的相关规范, 本规范是可互操作的,可以作为任一自动载入规范的补充,其中包括 PSR-0,此外, 本 PSR 还包括自动载入的类对应的文件存放路径规范。 关于「能愿动词」的使用 为了避免歧义,文档大量使用了「能愿动词」,对应的解释如下: 必须 (MUST):绝对,严格遵循,请照做,无条件遵守; 一定不可 (MUST NOT):禁令,严令禁止;

  • 我刚刚开始使用composer进行依赖关系管理,我很难弄清楚我是如何不遵守psr-4进行自动加载的,所以我来这里寻求建议。我有一个生成随机值的类,它已经在packagist上了。项目结构如下(我已将composer.json文件标记为A和B): 项目总监 composer.jsonA composer.jsonB 最后是RlandValue.php文件,它声明了ejFrancis命名空间 当我运行

  • 如果执行命令作曲家转储-自动加载,然后出现错误类没有找到,因为autoload_static.php改变。 我的项目结构如下: app -公共 ------ index.php -src ------ WordToImage.php -供应商 ------ 作曲家 ------------(任意作曲家文件) ------------ autoload_static.php --composer.j