Composer 自动加载 类 TYPO3 扩展,无需任何自动加载配置
Composer autoloads classes of TYPO3 extension without any autoload configuration
为什么下面的根 composer.json
导致 vendor/composer/autoload_classmap.php
包含 Smarty 的 classes 的所有 class 映射 – 虽然 composer.json
typo3-ter/smarty
没有任何 autoload
配置?
{
"repositories": [
{
"type": "composer",
"url": "https://composer.typo3.org"
}
],
"require": {
"typo3/cms": "^6.2",
"typo3-ter/smarty": "2.1.2"
}
}
一些背景信息:
https://composer.typo3.org 是一个 composer 存储库,它使 legacy TYPO3 Extension Repository (TER) 扩展可以通过 composer 安装。因为 TER 扩展没有供应商名称,所以 所有 它们共享同一个供应商,即 "typo3-ter".
此(遗留)作曲家存储库是使用 TER 的元信息(对其他 TER 扩展和 TYPO3 版本的依赖性、作者、描述……)构建的。
为了使这个存储库对最终用户更有用,尤其是因为 TYPO3 >7.6 在通过 composer 安装时完全依赖于 composer 自动加载器,complete extension directory 被添加到 composer 类映射中。否则,扩展 类 根本无法加载,无需任何额外配置。
因为这会引起麻烦,所以我教 TER 从 composer.json 中获取部分信息,以防此文件存在。这意味着 if a composer.json is present and it contains an autoload section, 此部分用于生成此扩展的自动加载信息关于作曲家。typo3.org
关于 smarty 扩展:
令人惊讶的是,这个扩展已经有了一个 composer.json 文件。但它坏了。首先也是最重要的:它错过了自动加载信息,尽管它显然有 类 可用。由于缺少自动加载信息,composer.typo3.org 包生成器将完整目录添加为类映射。
如果这会造成麻烦(你从未提到过,但我认为是这样),你应该将 repo 作为类型 "vcs" 直接添加到你的 composer.json 并要求 "rtp/smarty" 而不是 "typo3-ter/smarty".
或者你要求作者修复 composer.json 并上传新版本到 TER,或者直接在 packagist.org
上注册那个包更好
为什么下面的根 composer.json
导致 vendor/composer/autoload_classmap.php
包含 Smarty 的 classes 的所有 class 映射 – 虽然 composer.json
typo3-ter/smarty
没有任何 autoload
配置?
{
"repositories": [
{
"type": "composer",
"url": "https://composer.typo3.org"
}
],
"require": {
"typo3/cms": "^6.2",
"typo3-ter/smarty": "2.1.2"
}
}
一些背景信息:
https://composer.typo3.org 是一个 composer 存储库,它使 legacy TYPO3 Extension Repository (TER) 扩展可以通过 composer 安装。因为 TER 扩展没有供应商名称,所以 所有 它们共享同一个供应商,即 "typo3-ter".
此(遗留)作曲家存储库是使用 TER 的元信息(对其他 TER 扩展和 TYPO3 版本的依赖性、作者、描述……)构建的。
为了使这个存储库对最终用户更有用,尤其是因为 TYPO3 >7.6 在通过 composer 安装时完全依赖于 composer 自动加载器,complete extension directory 被添加到 composer 类映射中。否则,扩展 类 根本无法加载,无需任何额外配置。
因为这会引起麻烦,所以我教 TER 从 composer.json 中获取部分信息,以防此文件存在。这意味着 if a composer.json is present and it contains an autoload section, 此部分用于生成此扩展的自动加载信息关于作曲家。typo3.org
关于 smarty 扩展:
令人惊讶的是,这个扩展已经有了一个 composer.json 文件。但它坏了。首先也是最重要的:它错过了自动加载信息,尽管它显然有 类 可用。由于缺少自动加载信息,composer.typo3.org 包生成器将完整目录添加为类映射。
如果这会造成麻烦(你从未提到过,但我认为是这样),你应该将 repo 作为类型 "vcs" 直接添加到你的 composer.json 并要求 "rtp/smarty" 而不是 "typo3-ter/smarty".
或者你要求作者修复 composer.json 并上传新版本到 TER,或者直接在 packagist.org
上注册那个包更好