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
文件夹中,我有如下文件
// 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,那将会很有帮助