我似乎无法使用psr-0自动加载机制,让composer与我自己的类/文件配合工作。有谁能解释一下为什么以下内容没有起作用吗?
我的错误日志中输出如下所示:
PHP致命错误:在/home/webroot/bitlama/index.php的第5行找不到“TestdirTest1”类。
如果我取消注释明确的require语句(index.php:2),它会起作用。
如果有人想知道 - 是的,我已经以 “php ../composer.phar install”的形式运行了composer安装。
这是我的目录结构:
我的错误日志中输出如下所示:
PHP致命错误:在/home/webroot/bitlama/index.php的第5行找不到“TestdirTest1”类。
如果我取消注释明确的require语句(index.php:2),它会起作用。
如果有人想知道 - 是的,我已经以 “php ../composer.phar install”的形式运行了composer安装。
这是我的目录结构:
├── composer.json
├── index.php
├── testspacedir
│ └── Testdir
│ └── test1.php
└── vendor
├── autoload.php
└── composer
├── autoload_classmap.php
├── autoload_namespaces.php
├── autoload_real.php
└── ClassLoader.php
composer.json:
{
"autoload": {
"psr-0": { "Testdir\\": "testspacedir/"}
}
}
test1.php:
<?php
namespace Testdir;
class Test1 {
public function __construct()
{
echo "Woohoo Test1";
}
}
index.php:
<?php
require 'vendor/autoload.php';
//require 'testspacedir/Testdir/test1.php';
$test1 = new Testdir\Test1();
vendor/autoload.php:
<?php
// autoload.php @generated by Composer
require_once __DIR__ . '/composer' . '/autoload_real.php';
return ComposerAutoloaderInit7b4760e0f7ca9d6454dd2f098c374ba4::getLoader();
vendor/composer/autoloader_namespaces.php
文件。其中应该包含一个以你的命名空间为数组键和正确文件夹路径的行。 - Sven