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;
*/
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));
+ if (substr($this->root, -1) === DIRECTORY_SEPARATOR) {
+ $this->root = substr($this->root, 0, -1);
+ }
+
$servicesFiles = [
- $this->root.DRUPAL_CONSOLE_CORE.'/services.yml',
+ $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'
+ $this->root.DRUPAL_CONSOLE.'uninstall.services.yml',
+ $this->root.DRUPAL_CONSOLE.'extend.console.uninstall.services.yml'
];
foreach ($servicesFiles as $servicesFile) {
$consoleRoot
);
+ $container->set(
+ 'console.drupal_finder',
+ $this->drupalFinder
+ );
+
$configurationManager = $container->get('console.configuration_manager');
$directory = $configurationManager->getConsoleDirectory() . 'extend/';
$autoloadFile = $directory . 'vendor/autoload.php';