Drupal 8 console. PHP Fatal error: Uncaught Error: Call to undefined method.

Возникла ошибка при использовании Drupal/Console в Drupal 8. Ошибка следующая:

vendor/drupal/console/bin/drupal --version
PHP Fatal error:  Uncaught Error: Call to undefined method Drupal\Console\Core\Utils\DrupalFinder::getVendorDir() in vendor/drupal/console-core/src/Utils/DrupalFinder.php:24
Stack trace:
#0 vendor/drupal/console/bin/drupal.php(37): Drupal\Console\Core\Utils\DrupalFinder->locateRoot('/home/...')
#1 vendor/drupal/console/bin/drupal(4): require('/home/...')
#2 {main}
  thrown in vendor/drupal/console-core/src/Utils/DrupalFinder.php on line 24

решается установкой дополнения:

composer require webflo/drupal-finder

, подробнее о Composer ищите по тегу Composer.

 

Сократить пути к drush и console в Drupal 8.

При стандартном использовании drush и drupal Console в командах нужно прописывать адреса до исполняемый файлов:

vendor/drupal/console/bin/drupal
vendor/drush/drush/drush

//А если из корня сайта , то:

../vendor/drupal/console/bin/drupal
../vendor/drush/drush/drush

, что не очень удобно. Проще добавить путь к vendor/bin в .bashrc, вот так:

echo "PATH=$PATH:~/path/to/vendor/bin" >> ~/.bashrc

Вызываться теперь команды из /vendor/bin , такие как drush и drupal будут из любого места в консоли, но выполнятся, конечно, будут все равно только из рабочего каталога сайта.

Теги