diff --git a/composer.json b/composer.json index 83c7137..1ecc82a 100644 --- a/composer.json +++ b/composer.json @@ -1,5 +1,6 @@ { "name": "digitalpolygon/polymer-drupal", + "type": "polymer-plugin", "description": "Drupal integration for Polymer", "license": "GPL-2.0+", "authors":[ @@ -39,30 +40,36 @@ "phpstan/phpstan": "^1.11", "phpro/grumphp-shim": "^2.5", "squizlabs/php_codesniffer": "^3", - "php-parallel-lint/php-parallel-lint": "^1.4" + "php-parallel-lint/php-parallel-lint": "^1.4", + "drupal/coder": "^8.3" }, "minimum-stability": "dev", "prefer-stable": true, - "autoload": { - "psr-4": { - "DigitalPolygon\\PolymerDrupal\\": "./src/" - } - }, "config": { "allow-plugins": { + "composer/installers": true, "digitalpolygon/polymer": true, "digitalpolygon/drupal-upgrade-plugin": true, - "phpro/grumphp-shim": true + "phpro/grumphp-shim": true, + "dealerdirect/phpcodesniffer-composer-installer": true } }, "scripts": { "lint": "find src test/src -name '*.php' -print0 | xargs -0 -n1 -P4 -- php -l", - "cs": "phpcs", + "cs": [ + "phpcs --standard=phpcs-non-drupal.xml.dist", + "phpcs --standard=phpcs-drupal.xml.dist" + ], "sa": "phpstan analyse -v -c phpstan.neon", "validations": [ "@lint", "@cs", "@sa" ] + }, + "autoload": { + "classmap": [ + "src/VendorAssets.php" + ] } } diff --git a/grumphp.yml b/grumphp.yml index a6fb5e7..c436e12 100644 --- a/grumphp.yml +++ b/grumphp.yml @@ -1,6 +1,19 @@ grumphp: hooks_dir: grumphp/hooks tasks: - phpcs: null + phpcs: + standard: PSR12 + warning_severity: 0 + whitelist_patterns: + - src + phpcs_drupal: + standard: + - Drupal + - DrupalPractice + warning_severity: 0 + whitelist_patterns: + - settings + metadata: + task: phpcs phpstan: null phplint: null diff --git a/phpcs-drupal.xml.dist b/phpcs-drupal.xml.dist new file mode 100644 index 0000000..bdffee2 --- /dev/null +++ b/phpcs-drupal.xml.dist @@ -0,0 +1,9 @@ + + + Default PHP CodeSniffer configuration for the Drupal Integration for Polymer WebOps Tooling project. + settings + + + + + diff --git a/phpcs.xml.dist b/phpcs-non-drupal.xml.dist similarity index 80% rename from phpcs.xml.dist rename to phpcs-non-drupal.xml.dist index 51c4ef8..5402af2 100644 --- a/phpcs.xml.dist +++ b/phpcs-non-drupal.xml.dist @@ -1,8 +1,8 @@ - + Default PHP CodeSniffer configuration for the Drupal Integration for Polymer WebOps Tooling project. src - + diff --git a/phpstan.neon b/phpstan.neon index 89ab15f..26c3e12 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -3,10 +3,12 @@ parameters: paths: - src additionalConstructors: - - DigitalPolygon\PolymerDrupal\Polymer\Services\Event\SiteSettingsFiles::setSite - - DigitalPolygon\PolymerDrupal\Polymer\Services\Event\AlterSiteSettingsFiles::setSite + - DigitalPolygon\Polymer\polymer_drupal\Services\Event\SiteSettingsFiles::setSite + - DigitalPolygon\Polymer\polymer_drupal\Services\Event\AlterSiteSettingsFiles::setSite ignoreErrors: - message: "#^Parameter \\#2 \\$default of method Consolidation\\\\Config\\\\Util\\\\ConfigOverlay\\:\\:get\\(\\) expects string\\|null, array given\\.$#" - identifier: missingType.iterableValue + bootstrapFiles: + - phpstanBootstrap.php diff --git a/phpstanBootstrap.php b/phpstanBootstrap.php new file mode 100644 index 0000000..78c7272 --- /dev/null +++ b/phpstanBootstrap.php @@ -0,0 +1,3 @@ + 'db', - default => $site_name, - }; - $databases['default']['default'] = [ - 'database' => $database_to_use, - 'username' => 'db', - 'password' => 'db', - 'prefix' => '', - 'host' => 'db', - 'port' => 3306, - 'isolation_level' => 'READ COMMITTED', - 'driver' => 'mysql', - 'namespace' => 'Drupal\\mysql\\Driver\\Database\\mysql', - 'autoload' => 'core/modules/mysql/src/Driver/Database/mysql/', - ]; + // Only apply the default DDEV database settings when settings.ddev.php was not + // loaded, so it does not overwrite DDEV's own (e.g. multisite) configuration. + if (!$ddev_settings_loaded && isset($site_name)) { + $database_to_use = match($site_name) { + 'default' => 'db', + default => $site_name, + }; + $databases['default']['default'] = [ + 'database' => $database_to_use, + 'username' => 'db', + 'password' => 'db', + 'prefix' => '', + 'host' => 'db', + 'port' => 3306, + 'isolation_level' => 'READ COMMITTED', + 'driver' => 'mysql', + 'namespace' => 'Drupal\\mysql\\Driver\\Database\\mysql', + 'autoload' => 'core/modules/mysql/src/Driver/Database/mysql/', + ]; } } diff --git a/settings/default.global.settings.php b/settings/default.global.settings.php index 5120b4f..d8869fb 100644 --- a/settings/default.global.settings.php +++ b/settings/default.global.settings.php @@ -14,16 +14,18 @@ /** * Include settings files in web/sites/settings. * - * If instead you want to add settings to a specific site, see Polymer's includes - * file in web/sites/{site-name}/settings/default.includes.settings.php. + * If instead you want to add settings to a specific site, see Polymer's + * includes file + * in web/sites/{site-name}/settings/default.includes.settings.php. */ $additionalSettingsFiles = [ // e.g,( DRUPAL_ROOT . "/sites/settings/foo.settings.php" ) ]; +// @phpstan-ignore foreach.emptyArray foreach ($additionalSettingsFiles as $settingsFile) { - if (file_exists($settingsFile)) { - // phpcs:ignore - require $settingsFile; - } + if (file_exists($settingsFile)) { + // phpcs:ignore + require $settingsFile; + } } diff --git a/settings/default.includes.settings.php b/settings/default.includes.settings.php index d5a9415..90c3d7e 100644 --- a/settings/default.includes.settings.php +++ b/settings/default.includes.settings.php @@ -42,9 +42,10 @@ // e.g,( DRUPAL_ROOT . "/sites/$site_dir/settings/foo.settings.php" ) ]; +// @phpstan-ignore foreach.emptyArray foreach ($additionalSettingsFiles as $settingsFile) { - if (file_exists($settingsFile)) { - // phpcs:ignore - require $settingsFile; - } + if (file_exists($settingsFile)) { + // phpcs:ignore + require $settingsFile; + } } diff --git a/settings/polymer.settings.php b/settings/polymer.settings.php index 0183608..10bd897 100644 --- a/settings/polymer.settings.php +++ b/settings/polymer.settings.php @@ -1,14 +1,14 @@ taskDrush(); $strategy = $this->getConfigValue('drupal.cm.strategy'); diff --git a/src/Polymer/Plugin/Commands/DrupalMultisiteCommands.php b/src/Plugin/Commands/DrupalMultisiteCommands.php similarity index 98% rename from src/Polymer/Plugin/Commands/DrupalMultisiteCommands.php rename to src/Plugin/Commands/DrupalMultisiteCommands.php index c6a9bfe..63a23d4 100644 --- a/src/Polymer/Plugin/Commands/DrupalMultisiteCommands.php +++ b/src/Plugin/Commands/DrupalMultisiteCommands.php @@ -1,11 +1,11 @@ site = $this->input()->getOption('site'); - /** @var \DigitalPolygon\Polymer\Robo\Tasks\Command[] $commands */ + /** @var \DigitalPolygon\Polymer\Core\Robo\Tasks\Command[] $commands */ $commands = []; $commands[] = 'internal:drupal:install'; $strategy = $this->getConfigValue('drupal.cm.strategy'); @@ -148,7 +148,7 @@ function ($string) { /** @var string $drupal_locale */ $drupal_locale = $this->getConfigValue('drupal.locale'); - /** @var \DigitalPolygon\PolymerDrupal\Polymer\Plugin\Tasks\DrushTask $task */ + /** @var \DigitalPolygon\Polymer\polymer_drupal\Plugin\Tasks\DrushTask $task */ $task = $this->taskDrush() ->drush("site-install") ->arg($project_profile_name) diff --git a/src/Polymer/Plugin/Commands/SetupCommands.php b/src/Plugin/Commands/SetupCommands.php similarity index 96% rename from src/Polymer/Plugin/Commands/SetupCommands.php rename to src/Plugin/Commands/SetupCommands.php index 1480bb6..082995b 100644 --- a/src/Polymer/Plugin/Commands/SetupCommands.php +++ b/src/Plugin/Commands/SetupCommands.php @@ -1,11 +1,11 @@ task(DrushTask::class); /** @var \Symfony\Component\Console\Output\OutputInterface $output */ $output = $this->output(); diff --git a/src/Polymer/Plugin/Template/GitHubWorkflows/AutomaticUpgrade.php b/src/Plugin/Template/GitHubWorkflows/AutomaticUpgrade.php similarity index 85% rename from src/Polymer/Plugin/Template/GitHubWorkflows/AutomaticUpgrade.php rename to src/Plugin/Template/GitHubWorkflows/AutomaticUpgrade.php index deabf53..4b304b0 100644 --- a/src/Polymer/Plugin/Template/GitHubWorkflows/AutomaticUpgrade.php +++ b/src/Plugin/Template/GitHubWorkflows/AutomaticUpgrade.php @@ -1,8 +1,8 @@