1

我正在为我的 Symfony 4.2 应用程序构建一个新的包,并且我想在包安装后只运行一次特定代码以在根项目中设置一些骨架类。与制造商捆绑包类似,但无需手动交互。安装的包应该修改另一个包的现有配置yaml(当然,一旦安装后)。

我尝试使用捆绑包的 composer.json 脚本部分,但没有运气。我在官方文档中没有找到如何解决这个问题的任何参考资料。

有什么方法可以解决这个问题吗?

4

3 回答 3

1

Symfony Flex是一个自动安装和删除包和其他依赖项的工具。

您需要在此处为​​您的捆绑包添加配方: https ://github.com/symfony/recipes-contrib

如果你的包是私有的,你可以使用 Private Symfony Flex Recipes Repository

更新:@Mitesh Vasava方法不起作用,因为首先,您需要手动将脚本设置到项目composer.jsoncomposer.json. 其次,此脚本将在每次安装后运行,而不仅仅是在安装包后运行。

于 2019-04-26T12:46:02.557 回答
1

您可以像@BoShurik 提到的那样为 Symfony Flex 创建一个官方配方,或者您可以创建一个作曲家插件,您可以在此处阅读。

基本方法是创建一个单独的包作为安装程序,然后在你的包中需要它。

然后,您的插件可以根据需要修改源代码。

于 2019-04-28T22:42:13.693 回答
0

在执行 composer install 或 update 命令时,您必须在 composer.json 中定义您的脚本:

{
    "scripts": {
        "auto-scripts": [
        ],
        "post-install-cmd": [
            "@auto-scripts"
        ],
        "post-update-cmd": [
            "@auto-scripts"
        ]
    }
}

您将在此链接中获得更多详细信息

于 2019-04-26T12:27:24.037 回答