TYPO3 7.6 - 如何自动加载作曲家包?
TYPO3 7.6 - How can I autoload composer packages?
我用扩展生成器创建了一个 TYPO3 7.6 扩展。现在我想添加并自动加载作曲家安装的包。我读到 ext_autoload.php 一般不会从 TYPO3 版本 7 加载。为此,您应该在扩展程序的根路径中使用 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
定义的 class Hybridauth
。我已经检查过:
\TYPO3\CMS\Extbase\Utility\DebuggerUtility::var_dump(get_declared_classes());
我错过了什么?我有什么要 add/change/rethink?
您的 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"
]
}
}
是我的错。 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{
// ...
}
我用扩展生成器创建了一个 TYPO3 7.6 扩展。现在我想添加并自动加载作曲家安装的包。我读到 ext_autoload.php 一般不会从 TYPO3 版本 7 加载。为此,您应该在扩展程序的根路径中使用 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
定义的 class Hybridauth
。我已经检查过:
\TYPO3\CMS\Extbase\Utility\DebuggerUtility::var_dump(get_declared_classes());
我错过了什么?我有什么要 add/change/rethink?
您的 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"
]
}
}
是我的错。 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{
// ...
}