我在根目录中有一个文件夹名classes
,与vendor
目录位于同一级别。
在classes
文件夹中,我有类似的文件
- billing.php
- connection.php
- 生产者.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 'BlahConnection' not found
这是我的index.php代码:
<?php
// index.php
require 'vendor/autoload.php';
use BlahConnection;
$connection = Connection::getInstance();
我对作曲家和名字命名的东西还比较陌生。需要指导我在这里做错了什么。感谢
问题是文件名区分大小写。如果您将文件重命名为Connection.php(而不是Connection.php),它将解决您的问题