From 80235796702cbbd72bd1db7bf57eea069a141e71 Mon Sep 17 00:00:00 2001 From: Moon Date: Wed, 16 Feb 2022 04:50:33 -0800 Subject: [PATCH] Move src/Features/WcPayPromotion to /src-internal/Admin/WcPayPromotion (https://github.com/woocommerce/woocommerce-admin/pull/8307) * Add psr-4 for the internal classes -- this is a temp. changes. We should remove it once we completely merge to the core * Register class aliases * Move WcPayPromotion classes to the internal * Ignore namespace PHP CS issue * Make features/WcPayPromotion internal * Added src-internal directory for Automattic\WooCommerce\Internal\Admin namespace * Moved src/Features/WcPayPromotion to src-internal/Admin/WcPayPromotion * Add phpcs rules for src-internal * Remove phpcs:ignoreFile * Update letter case to make it PSR4 compatible * Fix letter cases * Move the alias array into the function * Rename WcPayPromotion to WCPayPromotion (letter case update) * Include src-internal * Update letter case * Move src/Features/RemoteFreeExtensions to src-internal/Admin/RemoteFreeExtensions (https://github.com/woocommerce/woocommerce-admin/pull/8311) Co-authored-by: Chi-Hsuan Huang --- plugins/woocommerce-admin/bin/make-zip.sh | 3 ++- plugins/woocommerce-admin/composer.json | 3 ++- plugins/woocommerce-admin/phpcs.xml.dist | 6 ++++++ .../DefaultFreeExtensions.php | 3 +-- .../RemoteFreeExtensions/EvaluateExtension.php | 2 +- .../Admin}/RemoteFreeExtensions/Init.php | 5 ++--- .../RemoteFreeExtensionsDataSourcePoller.php | 2 +- .../Admin/WCPayPromotion}/Init.php | 8 ++++---- .../WCPayPromotionDataSourcePoller.php} | 5 ++--- ...CPaymentGatewayPreInstallWCPayPromotion.php | 2 +- .../src/API/OnboardingFreeExtensions.php | 2 +- .../src/Features/Features.php | 18 ++++++++++++++++++ .../OnboardingTasks/Tasks/Marketing.php | 2 +- 13 files changed, 42 insertions(+), 19 deletions(-) rename plugins/woocommerce-admin/{src/Features => src-internal/Admin}/RemoteFreeExtensions/DefaultFreeExtensions.php (98%) rename plugins/woocommerce-admin/{src/Features => src-internal/Admin}/RemoteFreeExtensions/EvaluateExtension.php (94%) rename plugins/woocommerce-admin/{src/Features => src-internal/Admin}/RemoteFreeExtensions/Init.php (91%) rename plugins/woocommerce-admin/{src/Features => src-internal/Admin}/RemoteFreeExtensions/RemoteFreeExtensionsDataSourcePoller.php (91%) rename plugins/woocommerce-admin/{src/Features/WcPayPromotion => src-internal/Admin/WCPayPromotion}/Init.php (95%) rename plugins/woocommerce-admin/{src/Features/WcPayPromotion/WcPayPromotionDataSourcePoller.php => src-internal/Admin/WCPayPromotion/WCPayPromotionDataSourcePoller.php} (83%) rename plugins/woocommerce-admin/{src/Features/WcPayPromotion => src-internal/Admin/WCPayPromotion}/WCPaymentGatewayPreInstallWCPayPromotion.php (96%) diff --git a/plugins/woocommerce-admin/bin/make-zip.sh b/plugins/woocommerce-admin/bin/make-zip.sh index d7397c3fb6f..cf03afcc40f 100755 --- a/plugins/woocommerce-admin/bin/make-zip.sh +++ b/plugins/woocommerce-admin/bin/make-zip.sh @@ -40,4 +40,5 @@ zip -r "${ZIP_FILE}" \ readme.txt \ changelog.txt \ src/ \ - vendor/ + vendor/ \ + src-internal/ diff --git a/plugins/woocommerce-admin/composer.json b/plugins/woocommerce-admin/composer.json index be2669feac9..2e3743520a9 100644 --- a/plugins/woocommerce-admin/composer.json +++ b/plugins/woocommerce-admin/composer.json @@ -77,7 +77,8 @@ }, "autoload": { "psr-4": { - "Automattic\\WooCommerce\\Admin\\": "src/" + "Automattic\\WooCommerce\\Admin\\": "src/", + "Automattic\\WooCommerce\\Internal\\Admin\\": "src-internal/Admin/" } } } diff --git a/plugins/woocommerce-admin/phpcs.xml.dist b/plugins/woocommerce-admin/phpcs.xml.dist index 7b56fe4484a..834522793b2 100644 --- a/plugins/woocommerce-admin/phpcs.xml.dist +++ b/plugins/woocommerce-admin/phpcs.xml.dist @@ -31,14 +31,17 @@ src/* tests/* woocommerce-admin.php + src-internal/* src/* + src-internal/* src/* + src-internal/* @@ -46,15 +49,18 @@ src/ + src-internal/ tests/ src/ + src-internal/ tests/ src/ + src-internal/ tests/ diff --git a/plugins/woocommerce-admin/src/Features/RemoteFreeExtensions/DefaultFreeExtensions.php b/plugins/woocommerce-admin/src-internal/Admin/RemoteFreeExtensions/DefaultFreeExtensions.php similarity index 98% rename from plugins/woocommerce-admin/src/Features/RemoteFreeExtensions/DefaultFreeExtensions.php rename to plugins/woocommerce-admin/src-internal/Admin/RemoteFreeExtensions/DefaultFreeExtensions.php index 662217de84e..e984bc6f19e 100644 --- a/plugins/woocommerce-admin/src/Features/RemoteFreeExtensions/DefaultFreeExtensions.php +++ b/plugins/woocommerce-admin/src-internal/Admin/RemoteFreeExtensions/DefaultFreeExtensions.php @@ -3,11 +3,10 @@ * Gets a list of fallback methods if remote fetching is disabled. */ -namespace Automattic\WooCommerce\Admin\Features\RemoteFreeExtensions; +namespace Automattic\WooCommerce\Internal\Admin\RemoteFreeExtensions; defined( 'ABSPATH' ) || exit; -use Automattic\WooCommerce\Admin\Features\OnboardingTasks\Init as OnboardingTasks; /** * Default Free Extensions diff --git a/plugins/woocommerce-admin/src/Features/RemoteFreeExtensions/EvaluateExtension.php b/plugins/woocommerce-admin/src-internal/Admin/RemoteFreeExtensions/EvaluateExtension.php similarity index 94% rename from plugins/woocommerce-admin/src/Features/RemoteFreeExtensions/EvaluateExtension.php rename to plugins/woocommerce-admin/src-internal/Admin/RemoteFreeExtensions/EvaluateExtension.php index 352f279c391..100dd94a125 100644 --- a/plugins/woocommerce-admin/src/Features/RemoteFreeExtensions/EvaluateExtension.php +++ b/plugins/woocommerce-admin/src-internal/Admin/RemoteFreeExtensions/EvaluateExtension.php @@ -3,7 +3,7 @@ * Evaluates the spec and returns a status. */ -namespace Automattic\WooCommerce\Admin\Features\RemoteFreeExtensions; +namespace Automattic\WooCommerce\Internal\Admin\RemoteFreeExtensions; defined( 'ABSPATH' ) || exit; diff --git a/plugins/woocommerce-admin/src/Features/RemoteFreeExtensions/Init.php b/plugins/woocommerce-admin/src-internal/Admin/RemoteFreeExtensions/Init.php similarity index 91% rename from plugins/woocommerce-admin/src/Features/RemoteFreeExtensions/Init.php rename to plugins/woocommerce-admin/src-internal/Admin/RemoteFreeExtensions/Init.php index b97f54ad763..01813f31d2e 100644 --- a/plugins/woocommerce-admin/src/Features/RemoteFreeExtensions/Init.php +++ b/plugins/woocommerce-admin/src-internal/Admin/RemoteFreeExtensions/Init.php @@ -3,12 +3,11 @@ * Handles running payment method specs */ -namespace Automattic\WooCommerce\Admin\Features\RemoteFreeExtensions; +namespace Automattic\WooCommerce\Internal\Admin\RemoteFreeExtensions; defined( 'ABSPATH' ) || exit; -use Automattic\WooCommerce\Admin\RemoteInboxNotifications\SpecRunner; -use Automattic\WooCommerce\Admin\Features\RemoteFreeExtensions\DefaultFreeExtensions; +use Automattic\WooCommerce\Internal\Admin\RemoteFreeExtensions\DefaultFreeExtensions; /** * Remote Payment Methods engine. diff --git a/plugins/woocommerce-admin/src/Features/RemoteFreeExtensions/RemoteFreeExtensionsDataSourcePoller.php b/plugins/woocommerce-admin/src-internal/Admin/RemoteFreeExtensions/RemoteFreeExtensionsDataSourcePoller.php similarity index 91% rename from plugins/woocommerce-admin/src/Features/RemoteFreeExtensions/RemoteFreeExtensionsDataSourcePoller.php rename to plugins/woocommerce-admin/src-internal/Admin/RemoteFreeExtensions/RemoteFreeExtensionsDataSourcePoller.php index 17ea8e6bf07..47386160514 100644 --- a/plugins/woocommerce-admin/src/Features/RemoteFreeExtensions/RemoteFreeExtensionsDataSourcePoller.php +++ b/plugins/woocommerce-admin/src-internal/Admin/RemoteFreeExtensions/RemoteFreeExtensionsDataSourcePoller.php @@ -1,6 +1,6 @@ delete_specs_transient(); + WCPayPromotionDataSourcePoller::get_instance()->delete_specs_transient(); } /** @@ -186,7 +186,7 @@ class Init { if ( 'no' === get_option( 'woocommerce_show_marketplace_suggestions', 'yes' ) ) { return array(); } - return WcPayPromotionDataSourcePoller::get_instance()->get_specs_from_data_sources(); + return WCPayPromotionDataSourcePoller::get_instance()->get_specs_from_data_sources(); } } diff --git a/plugins/woocommerce-admin/src/Features/WcPayPromotion/WcPayPromotionDataSourcePoller.php b/plugins/woocommerce-admin/src-internal/Admin/WCPayPromotion/WCPayPromotionDataSourcePoller.php similarity index 83% rename from plugins/woocommerce-admin/src/Features/WcPayPromotion/WcPayPromotionDataSourcePoller.php rename to plugins/woocommerce-admin/src-internal/Admin/WCPayPromotion/WCPayPromotionDataSourcePoller.php index 550fac8b635..9be4ed05509 100644 --- a/plugins/woocommerce-admin/src/Features/WcPayPromotion/WcPayPromotionDataSourcePoller.php +++ b/plugins/woocommerce-admin/src-internal/Admin/WCPayPromotion/WCPayPromotionDataSourcePoller.php @@ -1,13 +1,12 @@ register_internal_class_aliases(); // Load feature before WooCommerce update hooks. add_action( 'init', array( __CLASS__, 'load_features' ), 4 ); add_filter( 'woocommerce_get_sections_advanced', array( __CLASS__, 'add_features_section' ) ); @@ -389,4 +390,21 @@ class Features { $admin_body_class = implode( ' ', array_unique( $classes ) ); return " $admin_body_class "; } + + /** + * Alias internal features classes to make them backward compatible. + * We've moved our feature classes to src-internal as part of merging this + * repository with WooCommerce Core to form a monorepo. + * See https://wp.me/p90Yrv-2HY for details. + */ + private function register_internal_class_aliases() { + $aliases = array( + // new class => original class (this will be aliased). + 'Automattic\WooCommerce\Internal\Admin\WCPayPromotion\Init' => 'Automattic\WooCommerce\Admin\Features\WcPayPromotion\Init', + 'Automattic\WooCommerce\Internal\Admin\RemoteFreeExtensions\Init' => 'Automattic\WooCommerce\Admin\Features\RemoteFreeExtensions\Init', + ); + foreach ( $aliases as $new_class => $orig_class ) { + class_alias( $new_class, $orig_class ); + } + } } diff --git a/plugins/woocommerce-admin/src/Features/OnboardingTasks/Tasks/Marketing.php b/plugins/woocommerce-admin/src/Features/OnboardingTasks/Tasks/Marketing.php index 9182e267ee4..9eb41d09ff5 100644 --- a/plugins/woocommerce-admin/src/Features/OnboardingTasks/Tasks/Marketing.php +++ b/plugins/woocommerce-admin/src/Features/OnboardingTasks/Tasks/Marketing.php @@ -4,7 +4,7 @@ namespace Automattic\WooCommerce\Admin\Features\OnboardingTasks\Tasks; use Automattic\WooCommerce\Admin\Features\Features; use Automattic\WooCommerce\Admin\Features\OnboardingTasks\Task; -use Automattic\WooCommerce\Admin\Features\RemoteFreeExtensions\Init as RemoteFreeExtensions; +use Automattic\WooCommerce\Internal\Admin\RemoteFreeExtensions\Init as RemoteFreeExtensions; /** * Marketing Task