I'm trying to create a plugin that gonna let me use the Zoho API via the Zoho PHP SDK.

So i created a WP Plugin called connect-zoho and enable it. Until here it's easy :)

Then, by CLI i went in my plugin and did :

    composer requiere zohocrm/php-sdk

This installed the vendor folder with the content of zoho php sdk.

Now i try to use this SDK inside my plugin wordpress. 

In my plugin i created a file zoho-initialize-class.php (copy paste from the github doc) :

    <?php
    namespace com\zoho\crm\sample\initializer;
    
    use com\zoho\api\authenticator\OAuthToken;
    
    use com\zoho\api\authenticator\TokenType;
    
    use com\zoho\api\authenticator\store\DBStore;
    
    use com\zoho\api\authenticator\store\FileStore;
    
    use com\zoho\crm\api\Initializer;
    
    use com\zoho\crm\api\UserSignature;
    
    use com\zoho\crm\api\SDKConfigBuilder;
    
    use com\zoho\crm\api\dc\USDataCenter;
    
    use com\zoho\api\logger\Logger;
    
    use com\zoho\api\logger\Levels;
    
    class ZohoInitialize
    {
        public static function initialize()
        {
            /*
                * Create an instance of Logger Class that takes two parameters
                * 1 -> Level of the log messages to be logged. Can be configured by typing Levels "::" and choose any level from the list displayed.
                * 2 -> Absolute file path, where messages need to be logged.
            */
            $logger = Logger::getInstance(Levels::INFO, "/Users/user_name/Documents/php_sdk_log.log");
    
            //Create an UserSignature instance that takes user Email as parameter
            $user = new UserSignature("[email protected]");
    
            /*
                * Configure the environment
                * which is of the pattern Domain.Environment
                * Available Domains: USDataCenter, EUDataCenter, INDataCenter, CNDataCenter, AUDataCenter
                * Available Environments: PRODUCTION(), DEVELOPER(), SANDBOX()
            */
            $environment = USDataCenter::PRODUCTION();
    
            /*
                * Create a Token instance
                * 1 -> OAuth client id.
                * 2 -> OAuth client secret.
                * 3 -> REFRESH/GRANT token.
                * 4 -> Token type(REFRESH/GRANT).
                * 5 -> OAuth redirect URL.
            */
            $token = new OAuthToken("clientId", "clientSecret", "REFRESH/GRANT token", TokenType::REFRESH/GRANT, "redirectURL");
    
            /*
            * Create an instance of DBStore.
            * 1 -> DataBase host name. Default value "localhost"
            * 2 -> DataBase name. Default  value "zohooauth"
            * 3 -> DataBase user name. Default value "root"
            * 4 -> DataBase password. Default value ""
            * 5 -> DataBase port number. Default value "3306"
            */
            //$tokenstore = new DBStore();
    
            $tokenstore = new DBStore("hostName", "dataBaseName", "userName", "password", "portNumber");
    
            // $tokenstore = new FileStore("absolute_file_path");
    
            $autoRefreshFields = false;
    
            $pickListValidation = false;
    
            // Create an instance of SDKConfig
            $sdkConfig = (new SDKConfigBuilder())->setAutoRefreshFields($autoRefreshFields)->setPickListValidation($pickListValidation)->build();
    
            $resourcePath = "/Users/user_name/Documents/phpsdk-application";
    
            //Create an instance of RequestProxy
            $requestProxy = new RequestProxy("proxyHost", "proxyPort", "proxyUser", "password");
    
            /*
              * Call static initialize method of Initializer class that takes the following arguments
              * 1 -> UserSignature instance
              * 2 -> Environment instance
              * 3 -> Token instance
              * 4 -> TokenStore instance
              * 5 -> SDKConfig instance
              * 6 -> resourcePath - A String
              * 7 -> Log instance (optional)
              * 8 -> RequestProxy instance (optional)
            */
            Initializer::initialize($user, $environment, $token, $tokenstore, $sdkConfig, $resourcePath, $logger, $requestProxy);
        }
    }
    ?>


And then i try to call the function Initialize since my plugin file connect-zoho.php like this:

    require_once('zoho-initialize-class.php');
    ZohoInitialize::initialize();

But i have a problem of namespace and this error :

    PHP Fatal error:  Uncaught Error: Class 'com\zoho\api\logger\Logger' not found in /Users/user/website/zoho/wp-content/plugins/connect-zoho/zoho-initialize-class.php:32

How can i use the SDK inside the plugin ?

Thanks