Question

PHP SDK Class not found

  • 27 June 2020
  • 4 replies
  • 1107 views

I installed the RingCentral PHP SDK.

I created the "ringout.php" file.

When executing it, it says "PHP Fatal error: Class 'RingCentralSDKSDK' not found...", which it isn't.

What am I missing?

$rcsdk = new RingCentralSDKSDK($RINGCENTRAL_CLIENTID, $RINGCENTRAL_CLIENTSECRET, $RINGCENTRAL_SERVER);


4 replies

Do you see the "/vendor/ringcentral/" folder under your project folder? Or check if that exists where you install SDK into.

Yes. I see vendor/ringcentral and all of the other files.

My script includes (variables below are defined)

require('vendor/autoload.php');

use RingCentralSDKSDK;

$rcsdk = new SDK($RINGCENTRAL_CLIENTID, $RINGCENTRAL_CLIENTSECRET, $RINGCENTRAL_SERVER);

and I actually echoed variables to the screen to make sure each file was included (as I executed from the Linux command line)... It does include SDK.php.

The error specified is on the line where it says "new SDK" ( figured I'd mention it).

Also... I noticed that the autoload_classmap.php file is basically empty. Unsure if this should be the case:

<?php
// autoload_classmap.php @generated by Composer
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
);

I saw this discussion as well. I did the below and it is bool(true).

I even echo debug output from SDK.php and it works... although, it doesn't see the class SDK when I do get_declared_classes().

<?php

require('vendor/autoload.php');

var_dump(file_exists("vendor/autoload.php"));

Hi Ellen, have you solved this issue yet? Looking at your code I can't tell what server you are trying to connect to. I use the more direct approach by loading straight from the Class. Here is my code for both sandbox and production (I control how I want to connect with a DB table entry of sandbox on or off:

if ($ringcentral_sandbox == 1) {
// Use sandbox Client
$sdk = new RingCentralSDKSDK($client_id, $client_secret, RingCentralSDKSDK::SERVER_SANDBOX);
} else {
// Use Production Client
$sdk = new RingCentralSDKSDK($client_id, $client_secret, RingCentralSDKSDK::SERVER_PRODUCTION);
}

This removes the need to have the server name typed in correctly. Not sure this is the culprit but it may make your code a little more streamlined.

Basically I'm just replacing the Server parameter with:

RingCentralSDKSDK::SERVER_SANDBOX

or

RingCentralSDKSDK::SERVER_PRODUCTION


Reply