Before using namespaces by php-scoper to google/apiclient, google/analytics-admin, google/analytics-data, all the functionality worked fine. Still, to avoid conflicts of the plugin, I used php-scoper and namespace the entire libraries by MyPlugin. However, after implementing this, errors are encountered. The provided error logs indicate issues with initializing and constructing certain classes from the Google libraries.
Steps to Reproduce
Namespace the Google libraries using php-scoper.
Implement the changes into the WordPress plugin.
Observe errors related to class initialization and construction.
Expected Behavior
The plugin should function without errors after implementing namespaces to the Google libraries.
Actual Behavior
Errors related to class initialization and construction are encountered.
Additional Context
Autoloading has been verified and confirmed to be functioning correctly.
The entire Google library is properly namespaced.
Excluding Google namespaces leads to errors related to guzzlehttp, monolog, and psr.
Questions
Does namespacing the Google libraries affect their functionality?
How can conflicts arising from namespacing Google libraries be resolved in the WordPress environment?
Description
Before using namespaces by php-scoper to
google/apiclient
,google/analytics-admin
,google/analytics-data
, all the functionality worked fine. Still, to avoid conflicts of the plugin, I used php-scoper and namespace the entire libraries by MyPlugin. However, after implementing this, errors are encountered. The provided error logs indicate issues with initializing and constructing certain classes from the Google libraries.Steps to Reproduce
Expected Behavior
The plugin should function without errors after implementing namespaces to the Google libraries.
Actual Behavior
Errors related to class initialization and construction are encountered.
Additional Context
Questions
Error Log
[01-Mar-2024 10:50:37 UTC] [ { "file": "C:\Users\WPB\Local Sites\MyPlugin-google-sdk\app\public\wp-content\plugins\wp-MyPlugin\lib\Google-GA4\vendor\google\protobuf\src\Google\Protobuf\Internal\Message.php", "line": 51, "function": "initWithGeneratedPool", "class": "MyPlugin\Google\Protobuf\Internal\Message", "type": "->", "args": [] }, { "file": "C:\Users\WPB\Local Sites\MyPlugin-google-sdk\app\public\wp-content\plugins\wp-MyPlugin\lib\Google-GA4\vendor\google\analytics-admin\src\V1alpha\ListAccountsRequest.php", "line": 69, "function": "construct", "class": "MyPlugin\Google\Protobuf\Internal\Message", "type": "->", "args": [ null ] }, { "file": "C:\Users\WPB\Local Sites\MyPlugin-google-sdk\app\public\wp-content\plugins\wp-MyPlugin\lib\Google-GA4\vendor\google\analytics-admin\src\V1alpha\Gapic\AnalyticsAdminServiceGapicClient.php", "line": 4964, "function": "construct", "class": "MyPlugin\Google\Analytics\Admin\V1alpha\ListAccountsRequest", "type": "->", "args": [] }, { "file": "C:\Users\WPB\Local Sites\MyPlugin-google-sdk\app\public\wp-content\plugins\wp-MyPlugin\MyPlugin-general.php", "line": 589, "function": "listAccounts", "class": "MyPlugin\Google\Analytics\Admin\V1alpha\Gapic\AnalyticsAdminServiceGapicClient", "type": "->", "args": [] }, { "file": "C:\Users\WPB\Local Sites\MyPlugin-google-sdk\app\public\wp-content\plugins\wp-MyPlugin\inc\wpa-core-functions.php", "line": 522, "function": "get_ga_properties", "class": "MyPlugin_General", "type": "->", "args": [] }, { "file": "C:\Users\WPB\Local Sites\MyPlugin-google-sdk\app\public\wp-content\plugins\wp-MyPlugin\classes\MyPlugin-settings.php", "line": 195, "function": "fetch_ga_properties", "class": "WP_MyPlugin_FUNCTIONS", "type": "::", "args": [] }, { "file": "C:\Users\WPB\Local Sites\MyPlugin-google-sdk\app\public\wp-content\plugins\wp-MyPlugin\classes\MyPlugin-settings.php", "line": 499, "function": "get_settings_fields", "class": "WP_MyPlugin_Settings", "type": "->", "args": [] }, { "file": "C:\Users\WPB\Local Sites\MyPlugin-google-sdk\app\public\wp-includes\class-wp-hook.php", "line": 324, "function": "admin_init", "class": "WP_MyPlugin_Settings", "type": "->", "args": [ "" ] }, { "file": "C:\Users\WPB\Local Sites\MyPlugin-google-sdk\app\public\wp-includes\class-wp-hook.php", "line": 348, "function": "apply_filters", "class": "WP_Hook", "type": "->", "args": [ null, [ "" ] ] }, { "file": "C:\Users\WPB\Local Sites\MyPlugin-google-sdk\app\public\wp-includes\plugin.php", "line": 517, "function": "do_action", "class": "WP_Hook", "type": "->", "args": [ [ "" ] ] }, { "file": "C:\Users\WPB\Local Sites\MyPlugin-google-sdk\app\public\wp-admin\admin.php", "line": 175, "function": "do_action", "args": [ "admin_init" ] } ]