我在bitbucket上有自己的TYPO3扩展。通过composer works获取此信息(请参见此处获取输入)。扩展名已下载到“我的供应商”文件夹中。在那里,我无法通过扩展管理器安装扩展。
如何将我的文本输入typo3conf/ext(确保自动加载正常工作)?
分机即将通过
{
"type": "composer",
"url": "http://composer.typo3.org/"
}
将要(如预期的那样):
web/typo3config/ext
以下是我的project composer.json:
{
"repositories": [
{
"type": "composer",
"url": "http://composer.typo3.org/"
},
{
"type": "package",
"package": {
"name": "metaxos/exaibbrplus",
"version": "dev-2016",
"source": {
"url": "https://metaxos@bitbucket.org/metaxos/exaibbrplus.git",
"type": "git",
"reference": "release/2016"
}
}
}
],
"name": "Metaxos/ibbrating2016",
"require": {
"typo3/cms": "7.6.2",
"bk2k/bootstrap-package" : "dev-master",
"typo3-ter/compatibility6" : "7.6.0",
"typo3-ter/extension-builder" : "7.6.0",
"metaxos/exaibbrplus": "dev-2016"
},
"extra": {
"typo3/cms": {
"cms-package-dir": "{$vendor-dir}/typo3/cms",
"web-dir": "web"
}
}
}
这是我的扩展composer.json:
{
"name": "metaxos/exaibbrplus",
"description": "custom ext for typo3",
"type": "typo3-cms-extension",
"version": "0.0.1",
"require": {
"typo3/cms-core": ">=7.6.0,<8.0"
},
"replace": {
"extkey": "self.version",
"typo3-ter/extkey": "self.version"
},
"autoload": {
"psr-4": {
"Metaxos\\Exaibbrplus\\": "Classes/"
}
},
"keywords": ["custom", "ext"],
"homepage": "http://www.blah.ch"
}
尝试添加
“替换”:{“exibbrplus”:“self.version”,“typoter/exibbrplus”:“self.version”},
并且在自动加载器中仅使用"Metaxos\\Exaibbrplus\\":"Class/"
。
您需要将带有值typo3cms扩展名的
type
键添加到根composer.json
。这将把您的扩展名放在web/typo3conf/ext
中,而不是vendor/$vendor/$package
,从而使cms可以使用它。
重要的是,要知道,如果在root composer.json中将包重新定义为
存储库
类型包
,那么扩展名composer.json
文件中的任何内容都不会被考虑,您需要在rootcomposer.json
中定义有关该包的任何问题。
因此,应用我上面提到的规则,您的根
composer.json
将如下所示:
{仓库": [ { "类型:作曲家,url:http://composer.typo3.org/ " }, { "类型:包,包:{名称:metaxos/exaibbrplus,版本:dev-2016,类型:typo3-cms-扩展,"源":{"url":"https://metaxos@bitbucket.org /metaxos/exaibbrplus.git","type":"git","引用":"释放/2016"},"autoload":{"psr-4":{"Metaxos\\Exaibbrplus\\":"类/"}}, } } ], "名称":"Metaxos/ibbrating2016","要求":{"typo3/cms":"7.6.2","bk2k/bootstrap-包":"dev-master","typo3-ter/兼容性6":"7.6.0","typo3-ter/扩展构建器":"7.6.0","metaxos/exaibbrplus":"dev-2016"},"额外":{"typo3/cms":{"cms-Package-dir":"{$selp-dir}/typo3/cms","web-dir":"web" } } }
正如@helmbert前面提到的,您要么完全重新定义包,要么使用另一种存储库类型。您可能想考虑使用SISS或URL存储库。
为了让Composer将包安装在web/typo3conf/ext
中,包需要具有类型typo3-cms-扩展
。在扩展的composer.json
中实际上声明了这种类型,但是Composer不会尊重它,因为您在项目级composer.json
中显式声明了包配置:
"repositories": [
# ...
{
"type": "package",
"package": {
"name": "metaxos/exaibbrplus",
"version": "dev-2016",
"source": {
"url": "https://metaxos@bitbucket.org/metaxos/exaibbrplus.git",
"type": "git",
"reference": "release/2016"
}
}
}
]
当您为自己的存储库使用“type”:“package”
时,我怀疑Composer忽略了该包中的Composer.json
。由于您已经有一个包含composer.json
的Git存储库,因此我建议使用vcs
类型添加存储库:
"repositories": [
{
"type": "vcs",
"url": "https://metaxos@bitbucket.org/metaxos/exaibbrplus.git"
}
]
执行此操作时,Composer应使用该存储库中的Composer.json,识别正确的包类型(typo3 cms extension
),并将包安装到正确的目录中。
我想覆盖TYPO3系统扩展“instal”的方法- 系统扩展中的其他类,例如TYPO3\CMS\Backend\Controller\LoginController或TYPO3\CMS\Backend\Template\DocumentTemplate,可以在XLASS覆盖的帮助下毫无问题地运行。 通常可以从自己的扩展覆盖安装工具类?
通过命令,编写器成功 和 当我用命令启动服务器时 我犯了以下错误 PHP警告:require(/opt/lampp/htdocs/Cake/vendor/autoload.PHP):无法打开流:第23行的/opt/lampp/htdocs/Cake/config/bootstrap.PHP中没有这样的文件或目录PHP致命错误:require():无法打开required'/opt/lampp/ht
我正试图用三个额外的日期(时间戳)字段扩展扩展扩展名(新闻),并希望在(新闻)的fluidtemplate中调用这些字段。 我已经连线到目前为止,我可以看到我的后端额外的字段,而无需选择一个外部类型-我已经相应地修改了ext_tables.php,并可以保存数据。 现在,我试图在我的新闻流模板中使用这些字段,在我的Partials/List/Item中使用以下代码。html-{newsItem.d
与TYPO3和作曲家一起学习TYPO3的基础知识。在尝试作曲家学习示例扩展时遇到了第一个问题 好的,需要作曲家来做。但是怎么做呢?只需了解如何使用composer设置TYPO3或创建用于composer的扩展。但是如何使用composer安装扩展? 再生n00n
我试图安装2.4.1从文件使用以下命令: 我从包含文件(var/www/projectname/) 有几个软件包安装正确。安装条令软件包时,出现以下错误: InvalidArgumentException$from(/var/www/projectname/bin/doctor)和$to()必须是绝对路径。 这是我已经尝试过的: 运行php编写器。phar自更新(现在是最新版本) 删除了整个项目(
我已经按照Ubuntu 16.04网站上的说明安装了composer。在终端中发出“composer”命令后,它将给出通常的输出。安装composer后,我使用下载了composer 现在要安装Laravel,我必须添加。但是没有。我的主目录中的composer文件夹。有谁能告诉我为什么会这样?