修改Drupal的composer.json文件是否可以接受?


8

Drupal坚持不修改core的最佳实践。

Drupal 8在核心中内置了composer.json文件,如果您需要添加第三方库,是否应该修改composer.json,还是有更好的方法呢?


考虑到上次讨论已经过去两年了,我们可以重新开始讨论吗?我读过在Drupal 8 RC1中,现在可以直接composer require在Drupal docroot中管理模块。一切都很好,但是如果我需要做的话composer require drupal/drupal-extension,该操作会拉入Behat,然后修改D8 core的vendor目录中的许多内容?这在万神殿中是一个特别棘手的问题,其中回购根目录显然必须是Drupal docroot。
kostajh 2015年

Answers:


5

可以将Drupal 8消费到您自己的composer.json文件中:

{
    "name": "davidbarratt/mydrupalproject",
    "require": {
        "drupal/drupal": "8.*"
        "composer/installers": "1.*"
    },
    "repositories": [
        {
            "type": "package",
            "package": {
                "name": "drupal/drupal",
                "type": "drupal-core",
                "version": "8.0.0-dev",
                "source": {
                    "url": "http://git.drupal.org/project/drupal.git",
                    "type": "git",
                    "reference": "8.x"
                }
            }
        }
    ],
    "minimum-stability": "dev"
}

有一个请求请求composer/installers将允许安装drupal-core项目类型:http : //github.com/composer/installers/pull/38

希望您能对上述请求请求以及队列中允许安装模块/主题/配置文件的其他请求进行输入。

当前有效的另一个解决方案是Composer Manager模块,该模块有助于composer.json模块的使用。它目前可用于Drupal 7,并且在Drupal 8 alpha版本关闭后将可用于Drupal 8。

非常感谢Rob


您想更新您的答案。:) drupal.org/node/2404989
David Barratt 2015年

1

还有Composer模块,它是Composer的Drush包装器。然后,您的模块可以提供自己的作曲家文件,Drush将使用该文件为您的模块(或站点)下载其他依赖项(如果您对drupal站点使用至少1个“自定义”模块)。

我还建议您观看2012年慕尼黑DrupalCon上的Drupal8 / Composer研讨会:http ://munich2012.drupal.org/content/drupal-has-dependencies-lets-manage-them


Drush Composer只是Composer的包装。如果您使用它来修改Drupal基于Composer的需求,它将修改Drupal的根composer.json文件。另外,不再提供2012年慕尼黑奥运会的视频。
paul-m

0

是。

可以按原计划使用Composer。:-)

编辑:

该软件包可以帮助您管理基于Composer的Drupal项目:https : //github.com/drupal-composer/drupal-project


你有被引用吗?
大卫·巴拉特

我有这个:composer create-project drupal/drupal drupal_root ~8@dev --keep-vcs cd drupal_root composer require vendor/package ~1...决定您不需要那个包裹... git checkout -- composer.json composer update而我想保留那个。
paul-m

那仍然修改了根composer.json文件。您仍然必须将您的更改与Drupal的更改合并。更糟糕的是,如果某人没有按照他们的要求更新其作曲者文件,则可能会遇到重大错误或严重的安全漏洞。您如何解决这个问题?
大卫·巴拉特

你不知道 你必须做那些事。目前,Drupal 8没有自动作曲家的东西,除了您可能要做的任何脚本之外。
paul-m

如果您必须将更改与Drupal合并,那不正是您不修改core的原因吗?
大卫·巴拉特
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.