当前位置: 首页 > 知识库问答 >
问题:

作曲家安装自己的TYPO3扩展在错误的路径

纪成礼
2023-03-14

我在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"
}

共有3个答案

督宏旷
2023-03-14

尝试添加

“替换”:{“exibbrplus”:“self.version”,“typoter/exibbrplus”:“self.version”},

并且在自动加载器中仅使用"Metaxos\\Exaibbrplus\\":"Class/"

屠锐
2023-03-14

您需要将带有值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存储库。

吴缪文
2023-03-14

为了让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文件夹。有谁能告诉我为什么会这样?