É aceitável modificar o arquivo composer.json do Drupal?


8

Drupal adere à melhor prática de nunca modificar o núcleo .

O Drupal 8 possui um arquivo composer.json embutido no núcleo, se você precisar adicionar uma biblioteca de terceiros, modifique o composer.json ou existe uma maneira melhor de fazer isso?


Podemos reabrir essa discussão, já que faz dois anos desde a última vez que foi discutida? Eu li que no Drupal 8 RC1, agora é possível gerenciar módulos diretamente via composer requirena documentação do Drupal. Tudo bem, mas e se eu precisar fazer o composer require drupal/drupal-extensionque puxa o Behat e, posteriormente, modifica muitas coisas no diretório de fornecedores do núcleo D8? Essa é uma questão particularmente complicada no Pantheon, onde aparentemente a raiz do repositório deve ser a raiz do Drupal.
kostajh

Respostas:


5

É possível consumir o Drupal 8 em seu próprio composer.jsonarquivo:

{
    "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"
}

Há uma solicitação pull para composer/installerspermitir a instalação dos drupal-coretipos de projeto: http://github.com/composer/installers/pull/38

Adoraria sua entrada na solicitação pull acima, assim como na outra que permite a instalação de módulos / temas / perfis.

Outra solução que atualmente funciona é o módulo Composer Manager , que facilita o composer.jsonuso de módulos. Atualmente, está disponível para o Drupal 7 e estará disponível para o Drupal 8 assim que as versões alfa do Drupal 8 estiverem fechadas.

Muito obrigado, Rob


Deseja atualizar sua resposta. :) drupal.org/node/2404989
David Barratt

1

Há também o módulo Composer que é um wrapper Drush para o Composer. Seu módulo pode fornecer seu próprio arquivo de compositor que o Drush utilizará para baixar dependências adicionais para o seu módulo - ou site, se você usar, digamos, pelo menos 1 módulo "personalizado" para o seu site drupal.

Também recomendo assistir a este seminário Drupal8 / Composer da DrupalCon Munich 2012: http://munich2012.drupal.org/content/drupal-has-dependencies-lets-manage-them


O Drush Composer é apenas um invólucro do Composer. Se você o usar para modificar os requisitos do Drupal Composer, ele modificará o composer.jsonarquivo raiz do Drupal . Além disso, o vídeo de Munique 2012 não está mais disponível.
Paul-m

0

Sim.

É aceitável usar o Composer da maneira que deveria ser usado. :-)

Editar:

Este pacote existe para ajudá-lo a gerenciar seu projeto Drupal baseado em Composer: https://github.com/drupal-composer/drupal-project


Você tem uma citação?
David Barratt

Eu tenho o seguinte: composer create-project drupal/drupal drupal_root ~8@dev --keep-vcs cd drupal_root composer require vendor/package ~1... decida que você não precisa desse pacote ... git checkout -- composer.json composer updateE eu gostaria de manter isso.
Paul-m

Isso ainda modifica o arquivo composer.json raiz. Você ainda teria que mesclar suas alterações com as alterações do Drupal. Ou pior, se alguém não atualizar o arquivo do compositor conforme informado, você poderá encontrar grandes erros ou falhas críticas de segurança. Como você contorna isso?
David Barratt

Você não Você tem que fazer essas coisas. Não há nenhum material de compositor automático para o Drupal 8 no momento, além de qualquer script que você possa criar para fazê-lo.
Paul-m

Se você precisar mesclar alterações com o Drupal, não é exatamente por isso que você não modifica o núcleo?
David Barratt
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.