composer 和 psr-4 找不到类文件

我很难理解如何使用psr-4.
在加载 vagrant 并设置和测试所有变量后,Homestead.yaml我准备了一个文件结构如下:

\app
   \folder
      -- test.php
   \vendor
       \composer
       -- autoload.php
   -- index.php
   -- composer.json

以下是我的代码:

index.php

<?PHP 
namespace app;

require('vendor/autoload.php');

$object = new folder\test();

作曲家.json

"autoload":{
    "psr-4":{
        "app\\": "app"
    }
}

测试文件

<?php 
namespace app\folder;

class test 
{
    function __construct ()
    {
        echo 'construction done right.';
    }
}

但是,在尝试访问该页面后,这些是页面上显示的错误消息:

(!) 致命错误:未捕获的错误:在第 6 行的 /home/vagrant/web/sites/app/index.php 中找不到
“app\folder\test”类(!)错误:“app\folder\test”类在第 6 行的 /home/vagrant/web/sites/app/index.php 中找不到

你能帮我理解并修复这个错误吗?

轴心

它不起作用,因为您已经告诉 Composerapp命名空间中的类app子目录中,但没有app子目录。

整个应用程序存储在app目录中,它的名称对于应用程序来说并不重要。app命名空间的类存储在当前目录中,子命名空间存储在同名的子目录中。

因此,您的composer.json文件应为:

"autoload": {
    "psr-4": {
        "app\\": ""
    }
}

或者,更清楚地说,您可以将.(当前目录)作为app\命名空间的位置

"autoload": {
    "psr-4": {
        "app\\": "."
    }
}

composer dump-autoloader主应用程序目录中运行更改后,它将开始工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章