J'ai un site Drupal 8 configuré avec Acquia Dev Desktop sur mon hôte local. J'utilise PHP 7.0.14; tout fonctionne bien, et le site marche parfaitement.
J'ai installé Drush 8. Lorsque j'essaie d'exécuter drush cr all
, Je reçois ce message d'erreur.
Erreur fatale PHP: la déclaration de Drush\Command\DrushInputAdapter :: hasParameterOption ($ values) doit être compatible avec Symfony\Component\Console\Input\InputInterface :: hasParameterOption ($ values, $ onlyParams = false) dans/Applications/DevDesktop/tools /vendor/drush/drush/lib/Drush/Command/DrushInputAdapter.php sur la ligne 27
Les lignes à l'origine de l'erreur sont les suivantes.
class DrushInputAdapter implements InputInterface {
protected $arguments;
protected $options;
protected $interactive;
public function __construct($arguments, $options, $command = false, $interactive = true)
{
$this->arguments = $arguments;
$this->options = $options;
// If a command name is provided as a parameter, then Push
// it onto the front of the arguments list as a service
if ($command) {
$this->arguments = array_merge(
[ 'command' => $command ],
$this->arguments
);
}
// Is it interactive, or is it not interactive?
// Call drush_get_option() here if value not passed in?
$this->interactive = $interactive;
}
Avec Drupal Console, j'obtiens quelque chose de similaire.
Erreur fatale PHP: la déclaration de Drupal\Component\DependencyInjection\Container :: set ($ id, $ service) doit être compatible avec Symfony\Component\DependencyInjection\ContainerInterface :: set ($ id, $ service, $ scope = self :: SCOPE_CONTAINER) dans /Users/josue/WebDevelop/drupal-8.4.0/core/lib/Drupal/Component/DependencyInjection/Container.php sur la ligne 47
La mise à jour vers Drush 9, comme suggéré dans le commentaire de user3346970, est certainement une solution à ce problème. Si vous souhaitez vous en tenir à Drush 8, passez à la version 8.1.15 ou ultérieure. Le problème que vous signalez ci-dessus a été résolu quelque part autour de la version 8.1.12.
Je ne suis pas certain des versions exactes de la console Drupal à utiliser avec chaque version de Drupal, mais je pense que vous découvrirez probablement également que la mise à jour vers la dernière version devrait également résoudre les choses. L'erreur que vous voyez indique que vous croisez Symfony version 2 (par exemple dans une ancienne version de Drush ou Drupal Console) avec Symfony version 3 (par exemple dans Drupal 8.4.0 et versions ultérieures).
J'ai mis à jour ma version drush de 8.1.10 => 8.1.15 en utilisant la commande ci-dessous et en bon état de fonctionnement.
compositeur mise à jour globale drush/drush