Php 无法使用composer加载自定义文件

Php 无法使用composer加载自定义文件,php,namespaces,composer-php,Php,Namespaces,Composer Php,我在根目录中有一个文件夹名classes,与vendor目录位于同一级别 在classes文件夹中,我有如下文件 billing.php connection.php producer.php 例如,所有这些类都有一个名称空间 // connection.php namespace Blah; class Connection {} // billing.php namespace Blah; class Billing{} 我有一个index.php文件,希望这些类不使用require或i

我在根目录中有一个文件夹名
classes
,与
vendor
目录位于同一级别

classes
文件夹中,我有如下文件

  • billing.php
  • connection.php
  • producer.php
  • 例如,所有这些类都有一个名称空间

    // connection.php
    namespace Blah;
    class Connection {}
    
    // billing.php
    namespace Blah;
    class Billing{}
    
    我有一个index.php文件,希望这些类不使用
    require
    include
    就可以使用。下面是我正在使用的
    composer.json
    文件

    {
        "require": {
            "slim/slim": "^2.6",
            "zeuxisoo/slim-whoops": "0.3.0",
            "videlalvaro/php-amqplib": "v2.1.0"
        },
        "autoload": {
            "psr-4": {
                "Blah\\": "classes/"
            }
        }
    }
    
    我也运行了
    composer dump autload
    ,但无法加载这些类。在index.php上,我得到了

    Class 'Blah\Connection' not found
    
    以下是我的index.php代码:

    <?php
    // index.php
    require 'vendor/autoload.php';
    use Blah\Connection;
    
    $connection = Connection::getInstance();
    

    问题是文件名区分大小写。如果您重命名文件Connection.php(而不是Connection.php),它将解决您的问题

    我刚刚尝试了您的代码,发现它工作正常。您是否已运行composer安装?否则,您可以发布完整的composer.json文件吗?还有,你的索引文件到底在哪里?它在根目录中吗?我运行了composer dump autoload,因为我已经运行了composer安装@PaulSaunders@PaulSaunders我更新了问题中的composer.json部分。这是我的composer.json的全部内容。index.php文件与composer.json文件处于同一级别。在我看来,这很好,我遇到了一个错误,因为我没有添加getInstance函数(我希望如此),我已经发布了答案。恐怕我不知道,我总是用\。如果我能实现我自己的案例DateTime haha,那将会很有帮助