TYPO3 7.6 - 如何自动加载作曲家包?

时间:2018-01-25 14:57:47

标签: php composer-php autoload extbase typo3-7.6.x

我使用扩展构建器创建了一个TYPO3 7.6扩展。现在我想添加和自动加载composer安装的包。我读到自从TYPO3版本7以来不会加载ext_autoload.php。为此,您应该使用扩展程序根路径中的ext_emconf.php composer.json

所以我设置了以下composer.json并将其与composer.phar一起安装。

{
    "require": {
        "hybridauth/hybridauth": "v3.0.0-rc.1"
    },
    "config": {
        "vendor-dir": "Vendor"
    },
    "autoload": {
        "psr-4": {
            "Vendor\\Package\\": "Classes"
        },
        "classmap": [
            "Vendor/hybridauth/hybridauth/src"
        ]
    }
}

现在有Vendor/hybridauth/hybridauth/src符合预期,但TYPO3的自动加载器找不到例如Vendor/hybridauth/hybridauth/src/Hybridauth.php定义的类Hybridauth。我用它来检查:

\TYPO3\CMS\Extbase\Utility\DebuggerUtility::var_dump(get_declared_classes());

我错过了什么?我需要添加/更改/重新考虑什么?

2 个答案:

答案 0 :(得分:0)

您的json文件内容如下所示。

{
    "require": {
        "hybridauth/hybridauth": "v3.0.0-rc.1"
    },
    "config": {
        "vendor-dir": "Vendor"
    },
    "autoload": {
        "psr-4": {
            "vendor\\extensionName\\": "Classes"
        },
        "classmap": [
            "Vendor/hybridauth/hybridauth/src/"
        ],
        "files": [
            "Vendor/hybridauth/hybridauth/src/Hybridauth.php"
        ]
    }
}

答案 1 :(得分:0)

这是我的错。 TYPO3已经自动加载了psr-4呼叫环境。但我必须添加Hybridauth自动加载器本身,如:

<?php

namespace Vendor\Package\Service;
require_once dirname(dirname(dirname(__FILE__))) . '/Vendor/autoload.php';

class SomeService extends \TYPO3\CMS\Sv\AbstractAuthenticationService{

  // ...

}
相关问题