Composer不能自动加载包

时间:2013-06-19 15:18:37

标签: php laravel composer-php steam-condenser

我目前正在使用Laravel 4.我已将以下内容添加到我的composer.json中,并运行了更新:

    "require": {
        ...
        "koraktor/steam-condenser": "*"

套餐:https://packagist.org/packages/koraktor/steam-condenser

我遇到的问题是,如果我调用其中一个类,例如:

$steamUser = new SteamId('000000000000000000');
echo "Welcome, " . $steamUser->getNickname() . "<br />";

我收到错误Class 'SteamId' not found

如果我手动需要所需的文件,那么它可以完美地运行:

require_once('/home/path-to-laravel/laravel/vendor/koraktor/steam-condenser/lib/steam-condenser.php');

我跑了composer dump-autoload但仍然无效。有人知道为什么吗?这真让我很沮丧:(

2 个答案:

答案 0 :(得分:9)

Steam Condenser(尚未)符合PSR-0,因此您必须使用不同的自动加载方法(请参阅http://getcomposer.org/doc/04-schema.md#autoload)。

使用files方法最适合:

{
    "autoload": {
        "files": ["vendor/koraktor/steam-condenser/lib/steam-condenser.php"]
    }
}

答案 1 :(得分:1)

只需要一个包裹,不会强迫作曲家自动加载包裹。

看一下使用composer进行自动加载,但这样的事情可以让你开始:

autoload: {
    "classmap": ["vendor/koraktor/steam-condenso/lib"]
}