diff --git a/.editorconfig b/.editorconfig index 12bcb27e4ee7bbca7f74423a87d205926d2ad1d2..ccc6a281e51a2f99832b3c2d5b7b42b3ce84c36e 100644 --- a/.editorconfig +++ b/.editorconfig @@ -12,6 +12,3 @@ indent_size = 2 charset = utf-8 trim_trailing_whitespace = true insert_final_newline = true - -[{composer.json,composer.lock}] -indent_size = 4 diff --git a/composer.json b/composer.json index e3a6f95fd574714cf87cecbac85e3476298c6ff3..74a4aeab1dae15b9826fa6c3b8edffb3be417c93 100644 --- a/composer.json +++ b/composer.json @@ -1,72 +1,72 @@ { - "name": "lakedrops/drupal-environment", - "description": "Composer Plugin for Drupal Environments", - "type": "composer-plugin", - "keywords": [ - "Drupal", - "Install", - "Update" - ], - "homepage": "https://gitlab.lakedrops.com/composer/plugin/drupal-environment", - "license": "GPL-2.0-or-later", - "authors": [ - { - "name": "Jürgen Haas", - "email": "juergen.haas@lakedrops.com", - "homepage": "https://www.lakedrops.com", - "role": "Drupal Expert" - }, - { - "name": "Daniel Speicher", - "email": "daniel.speicher@lakedrops.com", - "homepage": "https://www.lakedrops.com", - "role": "Drupal Expert" - }, - { - "name": "Richard Papp", - "email": "richard.papp@lakedrops.com", - "homepage": "https://www.lakedrops.com", - "role": "Drupal Expert" - } - ], - "support": { - "issues": "https://gitlab.lakedrops.com/composer/plugin/drupal-environment/issues", - "source": "https://gitlab.lakedrops.com/composer/plugin/drupal-environment/tree/main", - "docs": "https://devops-tools.docs.lakedrops.com/composer/plugin/drupal-environment/" + "name": "lakedrops/drupal-environment", + "description": "Composer Plugin for Drupal Environments", + "type": "composer-plugin", + "keywords": [ + "Drupal", + "Install", + "Update" + ], + "homepage": "https://gitlab.lakedrops.com/composer/plugin/drupal-environment", + "license": "GPL-2.0-or-later", + "authors": [ + { + "name": "Jürgen Haas", + "email": "juergen.haas@lakedrops.com", + "homepage": "https://www.lakedrops.com", + "role": "Drupal Expert" }, - "repositories": [ - { - "type": "composer", - "url": "https://packages.drupal.org/8" - } - ], - "require": { - "php": ">=7.4", - "composer-plugin-api": "^1||^2", - "drupal/http_client_retry": "^2.0", - "drupal/redis": "^1.5", - "lakedrops/composer-json-utils": "^2.4||dev-develop" + { + "name": "Daniel Speicher", + "email": "daniel.speicher@lakedrops.com", + "homepage": "https://www.lakedrops.com", + "role": "Drupal Expert" }, - "require-dev": { - "composer/composer": "^1||^2", - "drupal/coder": "^8.3", - "phpunit/phpunit": "^9.5", - "roave/security-advisories": "dev-master", - "squizlabs/php_codesniffer": "^3.7" - }, - "config": { - "allow-plugins": { - "dealerdirect/phpcodesniffer-composer-installer": true - } - }, - "minimum-stability": "dev", - "prefer-stable": true, - "autoload": { - "psr-4": { - "LakeDrops\\DrupalEnvironment\\": "src/" - } - }, - "extra": { - "class": "LakeDrops\\DrupalEnvironment\\Plugin" + { + "name": "Richard Papp", + "email": "richard.papp@lakedrops.com", + "homepage": "https://www.lakedrops.com", + "role": "Drupal Expert" + } + ], + "support": { + "issues": "https://gitlab.lakedrops.com/composer/plugin/drupal-environment/issues", + "source": "https://gitlab.lakedrops.com/composer/plugin/drupal-environment/tree/main", + "docs": "https://devops-tools.docs.lakedrops.com/composer/plugin/drupal-environment/" + }, + "repositories": [ + { + "type": "composer", + "url": "https://packages.drupal.org/8" + } + ], + "require": { + "php": ">=8.1", + "composer-plugin-api": "^2", + "lakedrops/composer-json-utils": "^2.4||dev-develop" + }, + "require-dev": { + "composer/composer": "^2", + "lakedrops/drupal-development-environment": "^3.2||dev-develop", + "roave/security-advisories": "dev-latest" + }, + "config": { + "allow-plugins": { + "dealerdirect/phpcodesniffer-composer-installer": true, + "drupal/core-composer-scaffold": false, + "lakedrops/*": false, + "php-http/discovery": false, + "phpstan/extension-installer": true + } + }, + "minimum-stability": "dev", + "prefer-stable": true, + "autoload": { + "psr-4": { + "LakeDrops\\DrupalEnvironment\\": "src/" } + }, + "extra": { + "class": "LakeDrops\\DrupalEnvironment\\Plugin" + } } diff --git a/src/CommandProvider.php b/src/CommandProvider.php index 154b39eb9be8e3bcb8936dfd1eb0ff6e88ddd326..3dcc9258c6c122bfe3535f89a4f583767a877961 100644 --- a/src/CommandProvider.php +++ b/src/CommandProvider.php @@ -5,7 +5,7 @@ namespace LakeDrops\DrupalEnvironment; use Composer\Plugin\Capability\CommandProvider as CommandProviderCapability; /** - * Class CommandProvider. + * Composer Command Provider for LakeDrops drupal environments. * * @package LakeDrops\DrupalEnvironment */ diff --git a/src/ConfigCommand.php b/src/ConfigCommand.php index 81386415ccffc8c327d776625bbd23e68bef4d9f..e1657d695e2fec1f9aae5684ffb75a37e0f19806 100644 --- a/src/ConfigCommand.php +++ b/src/ConfigCommand.php @@ -7,7 +7,7 @@ use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; /** - * Class ConfigCommand. + * Composer Config Command for LakeDrops Drupal environments. * * @package LakeDrops\DrupalEnvironment */ diff --git a/src/Handler.php b/src/Handler.php index b53e7af1a4114de1feeba99be07ba8a413733555..5fcad4d323a938d6ffeeffcfe36b4d9ce05cfcf1 100644 --- a/src/Handler.php +++ b/src/Handler.php @@ -2,12 +2,11 @@ namespace LakeDrops\DrupalEnvironment; -use Exception; use LakeDrops\Component\Composer\BaseHandler; use Symfony\Component\Filesystem\Filesystem; /** - * Class Handler. + * Handler class to setup LakeDrops tool based Drupal projects. * * @package LakeDrops\DrupalEnvironment */ @@ -25,42 +24,42 @@ class Handler extends BaseHandler { */ protected function configDefault(): array { return [ - 'chg-acl' => FALSE, - 'webserver-username' => 'www-data', - 'webserver-groupname' => 'www-data', - 'filter_protocols' => [ - 'http', - 'https', - 'ftp', - 'news', - 'nntp', - 'tel', - 'telnet', - 'mailto', - 'irc', - 'ssh', - 'sftp', - 'webcal', - 'rtsp', - ], - 'cors_config' => [ - 'enabled' => 'false', - 'allowedOrigins' => '*', - ], - 'db' => [ - 'driver' => 'mysql', - 'namespace' => 'Drupal\Core\Database\Driver\mysql', - 'database' => 'example', - 'username' => 'username', - 'password' => 'password', - 'host' => '127.0.0.1', - 'port' => '3306', - 'prefix' => '', - ], - 'domain' => str_replace(['.', '-'], ['\\.', '\\-'], 'www.example.com'), - 'aliases' => [], - 'live' => (getenv('LAKEDROPS_BUILD_NG') === 'yes') || !empty($this->env->receiveGlobal('DRUPAL_LIVE', 'Live mode', '0')), - ]; + 'chg-acl' => FALSE, + 'webserver-username' => 'www-data', + 'webserver-groupname' => 'www-data', + 'filter_protocols' => [ + 'http', + 'https', + 'ftp', + 'news', + 'nntp', + 'tel', + 'telnet', + 'mailto', + 'irc', + 'ssh', + 'sftp', + 'webcal', + 'rtsp', + ], + 'cors_config' => [ + 'enabled' => 'false', + 'allowedOrigins' => '*', + ], + 'db' => [ + 'driver' => 'mysql', + 'namespace' => 'Drupal\Core\Database\Driver\mysql', + 'database' => 'example', + 'username' => 'username', + 'password' => 'password', + 'host' => '127.0.0.1', + 'port' => '3306', + 'prefix' => '', + ], + 'domain' => str_replace(['.', '-'], ['\\.', '\\-'], 'www.example.com'), + 'aliases' => [], + 'live' => (getenv('LAKEDROPS_BUILD_NG') === 'yes') || !empty($this->env->receiveGlobal('DRUPAL_LIVE', 'Live mode', '0')), + ]; } /** @@ -70,8 +69,13 @@ class Handler extends BaseHandler { $hash = $this->config->readValue('hash_salt'); if ($hash === NULL) { try { - $hash = str_replace(['+', '/', '='], ['-', '_', ''], base64_encode(random_bytes(55))); - } catch (Exception $e) { + $hash = str_replace(['+', '/', '='], [ + '-', + '_', + '', + ], base64_encode(random_bytes(55))); + } + catch (\Exception) { $hash = 'no-random-bytes-available'; } } @@ -81,13 +85,16 @@ class Handler extends BaseHandler { /** * Post project create event to setup Drupal environment. */ - public function setupLakeDropsProject() { + public function setupLakeDropsProject(): void { $this->init(); $fs = new Filesystem(); $installationManager = $this->composer->getInstallationManager(); $drupalCorePackage = $this->getDrupalCorePackage(); + if ($drupalCorePackage === NULL) { + return; + } $corePath = $installationManager->getInstallPath($drupalCorePackage); $this->config->setValue('drupal8', version_compare($drupalCorePackage->getVersion(), '9.0.0', '<='), FALSE); @@ -161,12 +168,12 @@ class Handler extends BaseHandler { // Ensure default environment directories for config_split. foreach ([ - 'develop', - 'test', - 'live', - 'nirvana', - 'snapshot', - ] as $subdir) { + 'develop', + 'test', + 'live', + 'nirvana', + 'snapshot', + ] as $subdir) { $path = $projectRoot . '/config/default/environments/' . $subdir; if (!$fs->exists($path)) { $fs->mkdir($path); diff --git a/src/Plugin.php b/src/Plugin.php index e03b5c9e8153cbb2b32519ff262b3fe22ba58090..8b135d2b71b42e5a5384bdd91f5302a9fc6b4a27 100644 --- a/src/Plugin.php +++ b/src/Plugin.php @@ -20,7 +20,7 @@ class Plugin extends BasePlugin { * * @var \Drupal\Composer\Plugin\Scaffold\Handler */ - protected $scaffoldHandler; + protected DrupalScaffoldHandler $scaffoldHandler; /** * {@inheritdoc} @@ -62,7 +62,7 @@ class Plugin extends BasePlugin { * @param \Composer\Script\Event $event * The event that triggered the plugin. */ - public function prepareProject(Event $event) { + public function prepareProject(Event $event): void { /** @var Handler $handler */ $handler = $this->handler; $handler