如何在Symfony 4.2中安装捆绑包后运行脚本或方法?

问题描述 投票:0回答:3

我正在为我的Symfony 4.2应用程序构建一个新的bundle,我想在bundle安装之后只运行一次特定的代码,以便在root项目中设置一些skeleton类。像制造商捆绑但没有手动交互。安装的软件包应该修改另一个软件包的现有配置yaml(当然,安装后一次)。

我试图使用bundle的composer.json脚本部分没有运气。我在官方文档中没有找到任何参考如何解决这个问题。

有没有办法解决这个问题?

symfony bundle symfony-4.2
3个回答
1
投票

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

你需要在这里为你的包添加一个recipehttps://github.com/symfony/recipes-contrib

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

更新:@Mitesh Vasava方法将无法正常工作,因为首先,您需要手动将脚本设置到项目的composer.json中,而不是设置为包的composer.json。其次,这个脚本将在每次安装后运行,而不仅仅是在安装捆绑包之后。


1
投票

您可以为@BoShurik提到的Symfony Flex创建官方配方,也可以创建一个作曲家插件,您可以阅读有关here的内容。

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

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


0
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.