From 688755a9bfe337072e6b340de7b0baf2bc861835 Mon Sep 17 00:00:00 2001 From: Rostislav Wolny Date: Thu, 5 Nov 2020 13:18:23 +0100 Subject: [PATCH] Handle WP source path config for different environments [MAILPOET-3029] --- .gitignore | 1 + RoboFile.php | 3 +++ tasks/phpstan/phpstan-tests.neon | 3 +-- tasks/phpstan/phpstan-wp-source.neon | 4 ++++ tasks/phpstan/phpstan.neon | 4 +--- 5 files changed, 10 insertions(+), 5 deletions(-) create mode 100644 tasks/phpstan/phpstan-wp-source.neon diff --git a/.gitignore b/.gitignore index c03be59810..a12294daaa 100644 --- a/.gitignore +++ b/.gitignore @@ -29,6 +29,7 @@ prefixer/build docker-compose.override.yml tasks/code_sniffer/vendor tasks/phpstan/vendor +tasks/phpstan/_phpstan-wp-source.neon /tools/vendor /storybook-static assets/js/src/newsletter_editor/behaviors/tinymce_icons.js diff --git a/RoboFile.php b/RoboFile.php index aa4e097e61..79fa58fa0a 100644 --- a/RoboFile.php +++ b/RoboFile.php @@ -506,6 +506,9 @@ class RoboFile extends \Robo\Tasks { // temp dir ->taskExec('mkdir -p ' . __DIR__ . '/temp') ->taskExec('rm -rf ' . __DIR__ . '/temp/phpstan') + // Generate config with correct path to WP source + ->taskExec("cp -rf $dir/tasks/phpstan/phpstan-wp-source.neon $dir/tasks/phpstan/_phpstan-wp-source.neon") + ->taskExec("sed -i 's+WP_ROOT+" . getenv('WP_ROOT') . "+g' $dir/tasks/phpstan/_phpstan-wp-source.neon") // lib ->taskExec($task) ->arg("$dir/lib") diff --git a/tasks/phpstan/phpstan-tests.neon b/tasks/phpstan/phpstan-tests.neon index 26d98a1974..963ed68b36 100644 --- a/tasks/phpstan/phpstan-tests.neon +++ b/tasks/phpstan/phpstan-tests.neon @@ -15,8 +15,6 @@ parameters: - ../../tests/acceptance - ../../tests/integration - ../../tests/unit - - ../../../../../wp-includes - - ../../../../../wp-admin/includes/ scanFiles: - PremiumContainerConfigurator.php - woocommerce.php @@ -37,6 +35,7 @@ parameters: checkMissingTypehints: false includes: + - _phpstan-wp-source.neon # Config file that adds paths to WP source code. Generated from phpstan-wp-source.neon by Robo - vendor/phpstan/phpstan-doctrine/extension.neon - vendor/phpstan/phpstan-phpunit/extension.neon - extensions/CodeceptionExtension/extension.neon diff --git a/tasks/phpstan/phpstan-wp-source.neon b/tasks/phpstan/phpstan-wp-source.neon new file mode 100644 index 0000000000..a5c8b7efde --- /dev/null +++ b/tasks/phpstan/phpstan-wp-source.neon @@ -0,0 +1,4 @@ +parameters: + scanDirectories: + - WP_ROOT/wp-includes + - WP_ROOT/wp-admin/includes/ diff --git a/tasks/phpstan/phpstan.neon b/tasks/phpstan/phpstan.neon index 053b2a8c97..8fcbf64a68 100644 --- a/tasks/phpstan/phpstan.neon +++ b/tasks/phpstan/phpstan.neon @@ -8,9 +8,6 @@ parameters: - PremiumContainerConfigurator.php - woocommerce.php - ../../vendor-prefixed/twig/twig/src/Extension/CoreExtension.php # phpstan can't find \MailPoetVendor\twig_include function - scanDirectories: - - ../../../../../wp-includes - - ../../../../../wp-admin/includes/ inferPrivatePropertyTypeFromConstructor: true parallel: processTimeout: 300.0 @@ -49,6 +46,7 @@ parameters: excludes_analyse: - ../../lib/Config/PopulatorData/Templates includes: + - _phpstan-wp-source.neon # Config file that adds paths to WP source code. Generated from phpstan-wp-source.neon by Robo - vendor/phpstan/phpstan-doctrine/extension.neon - vendor/phpstan/phpstan-doctrine/rules.neon - phpstan-baseline.neon # https://medium.com/@ondrejmirtes/phpstans-baseline-feature-lets-you-hold-new-code-to-a-higher-standard-e77d815a5dff