composer-php - 尝试通过 TYPO3 中的 composer 安装我自己的扩展

标签 composer-php typo3 typo3-extensions typo3-9.x

我的 TYPO3 CMS 的第一步和 composer ...但我无法安装自己的分发包。尝试:

composer require stsa/hellotypo3

我有这个错误:
[InvalidArgumentException]                                                                                           
 Could not find a version of package stsa/hellotypo3 matching your minimum-stability (stable). Require it with an explicit version constraint allowing its desired stability.

我已经安装了TYPO3 9.5.1通过 Composer 和(用于测试)安装第 3 方扩展,如 maskcomposer require mask/mask .它完美地工作。

这是我的composer.json我的分发扩展,我已上传到 packgist . json-file是有效的,但是一定有的。错误的 ..
{
    "name": "stsa/hellotypo3",
    "type": "typo3-cms-extension",
    "description": "FLUID Templates & TypoScript",
    "homepage": "https://www.hello.de/",
    "keywords": [
        "TYPO3",
        "CMS",
        "extension"
    ],
    "authors": [
        {
            "name": "Stsa",
            "email": "contact@hello.de",
            "role": "Developer",
            "homepage": "https://www.hello.de/"
        }
    ],
    "license": [
        "GPL-2.0-or-later"
    ],
    "require": {
        "typo3/cms-core": "^9.5"
    },
    "autoload": {
        "psr-4": {
            "Stsa\\Hellotypo3\\": "Classes/"
        }
    },
    "replace": {
        "hellotypo3": "self.version",
        "typo3-ter/hellotypo3": "self.version"
    }
}

没办法..它不起作用。我也尝试设置"minimum-stability": "stable" .但老实说,我不知道我能做什么..?!有人能帮我吗?谢谢。

编辑 1:今天我在 packgist 更新了我自己的扩展。它现在必须与此供应商/名称一起可用。

编辑 2:现在我通过 sitepackagebuilder 进行了测试扩展,上传到git,提交到packgist。尝试通过 composer require hellotypo3de/hellotest 安装.. 还是一样 错误警告:Could not find a version of package hellotypo3de/hellotest matching your minimum-stability (stable). Require it with an explicit version constraint allowing its desired stability. ..?!我的错在哪里?

最佳答案

我假设您只想在一个安装中使用您的扩展作为本地扩展。所以这就是要走的路:

  • 创建一个目录,例如packages在项目的根目录中。
  • 将您的扩展程序移至此目录并将文件夹命名为 stsa-hellotypo3 .破折号之前的部分是您的命名空间,包名称后面的部分。
  • 添加到您的composer.json您的扩展名中包含以下条目:
    "extra": {
        "typo3/cms": {
            "extension-key": "stsa_hellotypo3"
        }
    }
    

    现在 TYPO3 将使用 stsa_hellotypo3作为扩展键。
  • 更改为您的 composer.json TYPO3 项目根目录中的文件 repositories入口:
    "repositories": [
        {
            "type": "path",
            "url": "packages/*"
        },
        {
            "type": "composer",
            "url": "https://composer.typo3.org/"
        }
    ],
    

    Composer 现在将查看 packages要安装的软件包的文件夹。
  • 现在您可以将扩展添加到项目中:
    composer require stsa/hellotypo3:@dev
    

    该扩展在typo3conf/ext/目录中被符号链接(symbolic link)为stsa_hellotypo3。与 @dev已安装开发版本(您拥有)。您还可以在扩展的 composer.json 中添加版本条目文件,那么您可以省略 @dev .

  • 如果您这样做,则不必将扩展的自动加载信息添加到根 composer.json 文件中。

    关于composer-php - 尝试通过 TYPO3 中的 composer 安装我自己的扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53453110/

    相关文章:

    Laravel 空白项目..这么多文件!可以以某种方式减少吗?

    git - 如何使用 Git 和 Grunt/Sass/Composer 管理已编译 Assets 的版本控制和生产部署?

    typo3 - 链接到 Fluid 中的文件 – 如何指定存储?

    typo3 - 如何在流体中访问关联数组中的变量键?

    php - TYPO3 扩展构建器多张图片上传不工作

    typo3 - 如何在 TYPO3 extbase 扩展 Controller 中打开文件?

    terminal - 用于 Laravel 5.7/6.x 的 PhpDocumentor

    php - Composer(php的库管理器)生成的vendor目录在linux和windows中是否相同?

    typo3 - 如何确保在每种情况下都加载我的扩展的 TypoScript?

    Typo3 安装扩展后崩溃,现在无法访问实时站点或后端 : Parse error: syntax error