namespace Drupal\Console\Core\Bootstrap;
+use Drupal\Console\Core\Utils\DrupalFinder;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\Config\FileLocator;
use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;
/**
* Class DrupalConsoleCore
+ *
* @package Drupal\Console\Core\Bootstrap
*/
class DrupalConsoleCore
*/
protected $appRoot;
+ /**
+ * @var DrupalFinder
+ */
+ protected $drupalFinder;
+
/**
* DrupalConsole constructor.
- * @param $root
- * @param $appRoot
+ *
+ * @param string $root
+ * @param string $appRoot
+ * @param DrupalFinder $drupalFinder
*/
- public function __construct($root, $appRoot = null)
- {
+ public function __construct(
+ $root,
+ $appRoot = null,
+ DrupalFinder $drupalFinder
+ ) {
$this->root = $root;
$this->appRoot = $appRoot;
+ $this->drupalFinder = $drupalFinder;
}
/**
{
$container = new ContainerBuilder();
$loader = new YamlFileLoader($container, new FileLocator($this->root));
- $loader->load($this->root.DRUPAL_CONSOLE_CORE.'/services.yml');
- if (file_exists($this->root.'/services.yml')) {
- $loader->load('services.yml');
+
+ if (substr($this->root, -1) === DIRECTORY_SEPARATOR) {
+ $this->root = substr($this->root, 0, -1);
}
- if (file_exists($this->root.DRUPAL_CONSOLE.'/services-drupal-install.yml')) {
- $loader->load(
- $this->root . DRUPAL_CONSOLE . '/services-drupal-install.yml'
- );
+ $servicesFiles = [
+ $this->root.DRUPAL_CONSOLE_CORE.'services.yml',
+ $this->root.'/services.yml',
+ $this->root.DRUPAL_CONSOLE.'uninstall.services.yml',
+ $this->root.DRUPAL_CONSOLE.'extend.console.uninstall.services.yml'
+ ];
+
+ foreach ($servicesFiles as $servicesFile) {
+ if (file_exists($servicesFile)) {
+ $loader->load($servicesFile);
+ }
}
$container->get('console.configuration_manager')
$consoleRoot
);
+ $container->set(
+ 'console.drupal_finder',
+ $this->drupalFinder
+ );
+
$configurationManager = $container->get('console.configuration_manager');
$directory = $configurationManager->getConsoleDirectory() . 'extend/';
$autoloadFile = $directory . 'vendor/autoload.php';
if (is_file($autoloadFile)) {
include_once $autoloadFile;
- $extendServicesFile = $directory . 'extend.console.services.yml';
+ $extendServicesFile = $directory . 'extend.console.uninstall.services.yml';
if (is_file($extendServicesFile)) {
$loader->load($extendServicesFile);
}