From 1c354db1d1a19b87aecd523c021d00929a7f0190 Mon Sep 17 00:00:00 2001 From: Ben Parizek Date: Sat, 11 Nov 2023 23:44:00 -0500 Subject: [PATCH] Adds phpstan cleanup core level 3 --- src/core/Sprout.php | 4 ++- src/core/SproutSettings.php | 7 ++-- .../controllers/web/SettingsController.php | 4 +-- src/core/db/MigrationHelper.php | 13 +++++--- src/core/db/MigrationInterface.php | 11 +++++++ .../db/SproutPluginMigrationInterface.php | 3 ++ src/core/db/SproutPluginMigrator.php | 18 ++++++++--- src/core/modules/SettingsHelper.php | 4 +-- src/core/modules/SproutModuleInterface.php | 32 +++++++++++++++++++ src/core/modules/SproutModuleTrait.php | 7 ++++ src/core/twig/SproutVariable.php | 3 +- src/core/twig/TemplateHelper.php | 7 ++-- src/datastudio/DataStudioModule.php | 4 ++- src/forms/FormsModule.php | 4 ++- src/mailer/MailerModule.php | 4 ++- src/meta/MetaModule.php | 4 ++- src/redirects/RedirectsModule.php | 4 ++- src/sentemail/SentEmailModule.php | 4 ++- src/sitemaps/SitemapsModule.php | 4 ++- src/transactional/TransactionalModule.php | 4 ++- src/uris/UrisModule.php | 3 +- 21 files changed, 118 insertions(+), 30 deletions(-) create mode 100644 src/core/db/MigrationInterface.php create mode 100644 src/core/modules/SproutModuleInterface.php diff --git a/src/core/Sprout.php b/src/core/Sprout.php index 775392dc..e9221827 100644 --- a/src/core/Sprout.php +++ b/src/core/Sprout.php @@ -2,6 +2,7 @@ namespace BarrelStrength\Sprout\core; +use BarrelStrength\Sprout\core\db\MigrationInterface; use BarrelStrength\Sprout\core\db\MigrationTrait; use BarrelStrength\Sprout\core\helpers\ConditionHelper; use BarrelStrength\Sprout\core\helpers\PhoneHelper; @@ -9,6 +10,7 @@ use BarrelStrength\Sprout\core\modules\Modules as ModulesService; use BarrelStrength\Sprout\core\modules\Settings as SettingsService; use BarrelStrength\Sprout\core\modules\SettingsHelper; +use BarrelStrength\Sprout\core\modules\SproutModuleInterface; use BarrelStrength\Sprout\core\modules\SproutModuleTrait; use BarrelStrength\Sprout\core\modules\TranslatableTrait; use BarrelStrength\Sprout\core\twig\SproutExtension; @@ -38,7 +40,7 @@ * @property ModulesService $coreModules * @property VitePluginService $vite */ -class Sprout extends Module +class Sprout extends Module implements SproutModuleInterface, MigrationInterface { use SproutModuleTrait; use MigrationTrait; diff --git a/src/core/SproutSettings.php b/src/core/SproutSettings.php index 386463c4..8af2555b 100644 --- a/src/core/SproutSettings.php +++ b/src/core/SproutSettings.php @@ -2,6 +2,7 @@ namespace BarrelStrength\Sprout\core; +use BarrelStrength\Sprout\core\modules\SproutModuleInterface; use BarrelStrength\Sprout\core\modules\SproutModuleTrait; use Craft; use craft\config\BaseConfig; @@ -56,10 +57,10 @@ public function getCpSettingsRows(): array ]; } - uksort($cpSettingsRows, static function($a, $b): int { + uksort($cpSettingsRows, static function($a, $b) { /** - * @var $a SproutModuleTrait - * @var $b SproutModuleTrait + * @var SproutModuleInterface $a + * @var SproutModuleInterface $b */ return $a::getDisplayName() <=> $b::getDisplayName(); }); diff --git a/src/core/controllers/web/SettingsController.php b/src/core/controllers/web/SettingsController.php index 526d97b7..7dd1d139 100644 --- a/src/core/controllers/web/SettingsController.php +++ b/src/core/controllers/web/SettingsController.php @@ -3,7 +3,7 @@ namespace BarrelStrength\Sprout\core\controllers\web; use BarrelStrength\Sprout\core\modules\SettingsHelper; -use BarrelStrength\Sprout\core\modules\SproutModuleTrait; +use BarrelStrength\Sprout\core\modules\SproutModuleInterface; use Craft; use craft\web\Controller; use craft\web\twig\variables\Cp as CpVariable; @@ -25,7 +25,7 @@ public function actionSaveSettings(): ?Response $moduleId = Craft::$app->getRequest()->getBodyParam('moduleId'); $settings = Craft::$app->getRequest()->getBodyParam('settings'); - /** @var SproutModuleTrait $module */ + /** @var SproutModuleInterface $module */ $module = Craft::$app->getModule($moduleId); if (!$module) { diff --git a/src/core/db/MigrationHelper.php b/src/core/db/MigrationHelper.php index b0a8e8d3..b0dc32a1 100644 --- a/src/core/db/MigrationHelper.php +++ b/src/core/db/MigrationHelper.php @@ -3,7 +3,7 @@ namespace BarrelStrength\Sprout\core\db; use BarrelStrength\Sprout\core\migrations\Uninstall; -use BarrelStrength\Sprout\core\modules\SproutModuleTrait; +use BarrelStrength\Sprout\core\modules\SproutModuleInterface; use BarrelStrength\Sprout\core\Sprout; use BarrelStrength\Sprout\core\SproutSettings; use Craft; @@ -93,14 +93,19 @@ public static function runUninstallMigrations(SproutPluginMigrationInterface $pl $modulesSafeToUninstall = array_diff($plugin::getSchemaDependencies(), $requiredModules); - /** @var SproutModuleTrait $moduleClass */ + /** @var SproutModuleInterface $moduleClass */ foreach ($modulesSafeToUninstall as $moduleClass) { if (!$moduleClass::hasMigrations()) { continue; } - /** @var MigrationManager $migrator */ - $migrator = $moduleClass::getInstance()->getMigrator(); + $module = $moduleClass::getInstance(); + + if (!$module instanceof MigrationInterface) { + continue; + } + + $migrator = $module->getMigrator(); if (($migration = self::createUninstallMigration($migrator)) !== null) { try { diff --git a/src/core/db/MigrationInterface.php b/src/core/db/MigrationInterface.php new file mode 100644 index 00000000..0a01d262 --- /dev/null +++ b/src/core/db/MigrationInterface.php @@ -0,0 +1,11 @@ +getNamespaceName(); @@ -49,14 +48,23 @@ public function up(int $limit = 0): void parent::up(); // Loop through Sprout modules + /** @var SproutModuleInterface $moduleClass */ foreach ($this->schemaDependencies as $moduleClass) { if (!$moduleClass::hasMigrations()) { continue; } ob_start(); - $migrator = $moduleClass::getInstance()->getMigrator(); + + $module = $moduleClass::getInstance(); + + if (!$module instanceof MigrationInterface) { + continue; + } + + $migrator = $module->getMigrator(); $migrator->up(); + ob_end_clean(); } } diff --git a/src/core/modules/SettingsHelper.php b/src/core/modules/SettingsHelper.php index 9ae47d75..b6086148 100644 --- a/src/core/modules/SettingsHelper.php +++ b/src/core/modules/SettingsHelper.php @@ -28,11 +28,10 @@ class SettingsHelper * ideally we can ditch this method and migrate to use a native * Craft method if/when they better support third-party modules */ - public static function getSettingsConfig(Module $module, string $settingsClass): BaseConfig + public static function getSettingsConfig(SproutModuleInterface $module, string $settingsClass): BaseConfig { $configClass = $settingsClass; - /** @var SproutModuleTrait $module */ $envPrefix = $module::getEnvPrefix(); $projectConfigService = Craft::$app->getProjectConfig(); @@ -97,6 +96,7 @@ public static function saveDbSettings($moduleId, $settings, $siteId): SettingsRe $settingsRecord = null; try { foreach ($settings as $name => $setting) { + /** @var SettingsRecord $settingsRecord */ $settingsRecord = SettingsRecord::find() ->select('*') ->where([ diff --git a/src/core/modules/SproutModuleInterface.php b/src/core/modules/SproutModuleInterface.php new file mode 100644 index 00000000..b0c67c62 --- /dev/null +++ b/src/core/modules/SproutModuleInterface.php @@ -0,0 +1,32 @@ +modules[StringHelper::toCamelCase($module::getShortName())] = $module; } diff --git a/src/core/twig/TemplateHelper.php b/src/core/twig/TemplateHelper.php index 517b3645..e457a730 100644 --- a/src/core/twig/TemplateHelper.php +++ b/src/core/twig/TemplateHelper.php @@ -2,6 +2,7 @@ namespace BarrelStrength\Sprout\core\twig; +use BarrelStrength\Sprout\core\modules\SproutModuleInterface; use BarrelStrength\Sprout\core\modules\SproutModuleTrait; use BarrelStrength\Sprout\core\Sprout; use BarrelStrength\Sprout\core\SproutSettings; @@ -94,10 +95,10 @@ public static function optionsFromComponentTypes($savableComponentTypes, string return $options; } - public static function getConfigWarning(Module $module, string $setting): string + public static function getConfigWarning(SproutModuleInterface $sproutModule, string $setting): string { - /** @var SproutModuleTrait $module */ - $module = new $module($module::class); + $module = new $sproutModule($sproutModule::class); + $settings = $module->createSettingsModel(); $envConfig = App::envConfig($settings::class, $module::getEnvPrefix()); diff --git a/src/datastudio/DataStudioModule.php b/src/datastudio/DataStudioModule.php index a3cdf37e..dd4f8ccc 100644 --- a/src/datastudio/DataStudioModule.php +++ b/src/datastudio/DataStudioModule.php @@ -2,11 +2,13 @@ namespace BarrelStrength\Sprout\datastudio; +use BarrelStrength\Sprout\core\db\MigrationInterface; use BarrelStrength\Sprout\core\db\MigrationTrait; use BarrelStrength\Sprout\core\editions\EditionTrait; use BarrelStrength\Sprout\core\modules\CpNavHelper; use BarrelStrength\Sprout\core\modules\Settings; use BarrelStrength\Sprout\core\modules\SettingsHelper; +use BarrelStrength\Sprout\core\modules\SproutModuleInterface; use BarrelStrength\Sprout\core\modules\SproutModuleTrait; use BarrelStrength\Sprout\core\modules\TranslatableTrait; use BarrelStrength\Sprout\core\Sprout; @@ -44,7 +46,7 @@ * @property DataSources $dataSources * @property Visualizations $visualizations */ -class DataStudioModule extends Module +class DataStudioModule extends Module implements SproutModuleInterface, MigrationInterface { use SproutModuleTrait; use EditionTrait; diff --git a/src/forms/FormsModule.php b/src/forms/FormsModule.php index 864b2bf3..26e73bcf 100644 --- a/src/forms/FormsModule.php +++ b/src/forms/FormsModule.php @@ -2,10 +2,12 @@ namespace BarrelStrength\Sprout\forms; +use BarrelStrength\Sprout\core\db\MigrationInterface; use BarrelStrength\Sprout\core\db\MigrationTrait; use BarrelStrength\Sprout\core\editions\EditionTrait; use BarrelStrength\Sprout\core\modules\Settings; use BarrelStrength\Sprout\core\modules\SettingsHelper; +use BarrelStrength\Sprout\core\modules\SproutModuleInterface; use BarrelStrength\Sprout\core\modules\SproutModuleTrait; use BarrelStrength\Sprout\core\modules\TranslatableTrait; use BarrelStrength\Sprout\core\relations\RelationsHelper; @@ -68,7 +70,7 @@ * @property Addresses $addressField * @property AddressFormatter $addressFormatter */ -class FormsModule extends Module +class FormsModule extends Module implements SproutModuleInterface, MigrationInterface { use SproutModuleTrait; use EditionTrait; diff --git a/src/mailer/MailerModule.php b/src/mailer/MailerModule.php index 23c1c27f..6e758a50 100644 --- a/src/mailer/MailerModule.php +++ b/src/mailer/MailerModule.php @@ -2,10 +2,12 @@ namespace BarrelStrength\Sprout\mailer; +use BarrelStrength\Sprout\core\db\MigrationInterface; use BarrelStrength\Sprout\core\db\MigrationTrait; use BarrelStrength\Sprout\core\modules\CpNavHelper; use BarrelStrength\Sprout\core\modules\Settings; use BarrelStrength\Sprout\core\modules\SettingsHelper; +use BarrelStrength\Sprout\core\modules\SproutModuleInterface; use BarrelStrength\Sprout\core\modules\SproutModuleTrait; use BarrelStrength\Sprout\core\modules\TranslatableTrait; use BarrelStrength\Sprout\core\Sprout; @@ -48,7 +50,7 @@ * @property EmailTypes $emailTypes * @property SubscriberLists $subscriberLists */ -class MailerModule extends Module +class MailerModule extends Module implements SproutModuleInterface, MigrationInterface { use SproutModuleTrait; use MigrationTrait; diff --git a/src/meta/MetaModule.php b/src/meta/MetaModule.php index bc114002..00b40199 100644 --- a/src/meta/MetaModule.php +++ b/src/meta/MetaModule.php @@ -2,11 +2,13 @@ namespace BarrelStrength\Sprout\meta; +use BarrelStrength\Sprout\core\db\MigrationInterface; use BarrelStrength\Sprout\core\db\MigrationTrait; use BarrelStrength\Sprout\core\editions\EditionTrait; use BarrelStrength\Sprout\core\modules\CpNavHelper; use BarrelStrength\Sprout\core\modules\Settings; use BarrelStrength\Sprout\core\modules\SettingsHelper; +use BarrelStrength\Sprout\core\modules\SproutModuleInterface; use BarrelStrength\Sprout\core\modules\SproutModuleTrait; use BarrelStrength\Sprout\core\modules\TranslatableTrait; use BarrelStrength\Sprout\core\Sprout; @@ -41,7 +43,7 @@ * @property ElementMetadata $elementMetadata * @property SchemaMetadata $schemaMetadata */ -class MetaModule extends Module +class MetaModule extends Module implements SproutModuleInterface, MigrationInterface { use SproutModuleTrait; use EditionTrait; diff --git a/src/redirects/RedirectsModule.php b/src/redirects/RedirectsModule.php index c41d4d5a..7b0b1758 100644 --- a/src/redirects/RedirectsModule.php +++ b/src/redirects/RedirectsModule.php @@ -2,11 +2,13 @@ namespace BarrelStrength\Sprout\redirects; +use BarrelStrength\Sprout\core\db\MigrationInterface; use BarrelStrength\Sprout\core\db\MigrationTrait; use BarrelStrength\Sprout\core\editions\EditionTrait; use BarrelStrength\Sprout\core\modules\CpNavHelper; use BarrelStrength\Sprout\core\modules\Settings; use BarrelStrength\Sprout\core\modules\SettingsHelper; +use BarrelStrength\Sprout\core\modules\SproutModuleInterface; use BarrelStrength\Sprout\core\modules\SproutModuleTrait; use BarrelStrength\Sprout\core\modules\TranslatableTrait; use BarrelStrength\Sprout\core\Sprout; @@ -33,7 +35,7 @@ /** * @property Redirects $redirects */ -class RedirectsModule extends Module +class RedirectsModule extends Module implements SproutModuleInterface, MigrationInterface { use SproutModuleTrait; use EditionTrait; diff --git a/src/sentemail/SentEmailModule.php b/src/sentemail/SentEmailModule.php index 05824058..2f53f0fc 100644 --- a/src/sentemail/SentEmailModule.php +++ b/src/sentemail/SentEmailModule.php @@ -2,11 +2,13 @@ namespace BarrelStrength\Sprout\sentemail; +use BarrelStrength\Sprout\core\db\MigrationInterface; use BarrelStrength\Sprout\core\db\MigrationTrait; use BarrelStrength\Sprout\core\editions\EditionTrait; use BarrelStrength\Sprout\core\modules\CpNavHelper; use BarrelStrength\Sprout\core\modules\Settings; use BarrelStrength\Sprout\core\modules\SettingsHelper; +use BarrelStrength\Sprout\core\modules\SproutModuleInterface; use BarrelStrength\Sprout\core\modules\SproutModuleTrait; use BarrelStrength\Sprout\core\modules\TranslatableTrait; use BarrelStrength\Sprout\core\Sprout; @@ -31,7 +33,7 @@ /** * @property SentEmails $sentEmails */ -class SentEmailModule extends Module +class SentEmailModule extends Module implements SproutModuleInterface, MigrationInterface { use SproutModuleTrait; use EditionTrait; diff --git a/src/sitemaps/SitemapsModule.php b/src/sitemaps/SitemapsModule.php index 5ad3d190..b01de4db 100644 --- a/src/sitemaps/SitemapsModule.php +++ b/src/sitemaps/SitemapsModule.php @@ -2,12 +2,14 @@ namespace BarrelStrength\Sprout\sitemaps; +use BarrelStrength\Sprout\core\db\MigrationInterface; use BarrelStrength\Sprout\core\db\MigrationTrait; use BarrelStrength\Sprout\core\editions\EditionTrait; use BarrelStrength\Sprout\core\helpers\RegexHelper; use BarrelStrength\Sprout\core\modules\CpNavHelper; use BarrelStrength\Sprout\core\modules\Settings; use BarrelStrength\Sprout\core\modules\SettingsHelper; +use BarrelStrength\Sprout\core\modules\SproutModuleInterface; use BarrelStrength\Sprout\core\modules\SproutModuleTrait; use BarrelStrength\Sprout\core\modules\TranslatableTrait; use BarrelStrength\Sprout\core\Sprout; @@ -30,7 +32,7 @@ * @property SitemapMetadata $sitemaps * @property XmlSitemap $xmlSitemap */ -class SitemapsModule extends Module +class SitemapsModule extends Module implements SproutModuleInterface, MigrationInterface { use SproutModuleTrait; use EditionTrait; diff --git a/src/transactional/TransactionalModule.php b/src/transactional/TransactionalModule.php index f04b2cc3..9c4ddc07 100644 --- a/src/transactional/TransactionalModule.php +++ b/src/transactional/TransactionalModule.php @@ -2,8 +2,10 @@ namespace BarrelStrength\Sprout\transactional; +use BarrelStrength\Sprout\core\db\MigrationInterface; use BarrelStrength\Sprout\core\db\MigrationTrait; use BarrelStrength\Sprout\core\editions\EditionTrait; +use BarrelStrength\Sprout\core\modules\SproutModuleInterface; use BarrelStrength\Sprout\core\modules\SproutModuleTrait; use BarrelStrength\Sprout\core\modules\TranslatableTrait; use BarrelStrength\Sprout\core\relations\RelationsHelper; @@ -34,7 +36,7 @@ /** * @property NotificationEvents $notificationEvents */ -class TransactionalModule extends Module +class TransactionalModule extends Module implements SproutModuleInterface, MigrationInterface { use SproutModuleTrait; use EditionTrait; diff --git a/src/uris/UrisModule.php b/src/uris/UrisModule.php index c659861c..c958a094 100644 --- a/src/uris/UrisModule.php +++ b/src/uris/UrisModule.php @@ -2,6 +2,7 @@ namespace BarrelStrength\Sprout\uris; +use BarrelStrength\Sprout\core\modules\SproutModuleInterface; use BarrelStrength\Sprout\core\modules\SproutModuleTrait; use BarrelStrength\Sprout\core\modules\TranslatableTrait; use BarrelStrength\Sprout\core\Sprout; @@ -16,7 +17,7 @@ /** * @property Links $links */ -class UrisModule extends Module +class UrisModule extends Module implements SproutModuleInterface { use SproutModuleTrait; use TranslatableTrait;