1

I am facing a strange error. I got a fairly simple piece of code yet it is constantly giving me error that class not found.

The error i am getting is

Fatal error: Class 'pipedriveintegrationConfig' not found in /home/preston/public_html/fullslate-pipedrive/index.php on line 4

Here is index.php

require_once 'config.php';
require_once pipedriveintegrationConfig::PHP_LIB;
require_once 'fullslate.php';
require_once 'pipedrive.php';
require_once 'fullslate-pipedrive.php';

pipedriveintegrationConfig::init();

if ($_SERVER['argc'] > 1) {
    $action = $_SERVER['argv'][1];
} else
if (isset($_GET['action'])) {
    $action = $_GET['action'];
}


if ($action) {
    switch($action) {
        case 'sync-clients':
            $client = new pipedriveintegrationFullslatePipedrive(pipedriveintegrationFullslateConfig::toArray(), pipedriveintegrationPipedriveConfig::toArray());
            $client->syncClients();
            break;
        default:
            throw new CustomException('Unknown command line action: ', $action);
            break;
    }

} else {

if (file_exists(__DIR__ . '/test.php')) {
    require_once __DIR__ . '/test.php';
}

}

Code for config.php is

namespace pipedriveintegration;

class PipedriveConfig{
    const URL = 'https://api.pipedrive.com/v1';
    const API_TOKEN = 'XXXXXXXXXXXXXXXXXXXXXXX';

    const STAGE_ID_NEW_PROSPECT = 1;
    const STAGE_ID_CONSULTATION_SCHEDULED = 3;

    public static
    function toArray() {
        return array('url' => self::URL, 'api_token' => self::API_TOKEN, 'stage_id_new_prospect' => self::STAGE_ID_NEW_PROSPECT, 'stage_id_consultation_scheduled' => self::STAGE_ID_CONSULTATION_SCHEDULED,);
    }

}

class FullslateConfig{
    const URL = 'https://slcguitar.fullslate.com/api';
    const API_TOKEN = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXx';
    public static
    function toArray() {
        return array('url' => self::URL, 'api_token' => self::API_TOKEN,);
    }

}

///////////////////////////////////////////////////////////////////////////////////////////////////
class Config{

    const PHP_LIB = 'PHPLib.php';

    const USE_TIMESTAMP = false;
    //'2014-12-15';
    public static
    function init() {
        APP::init(array('mode' => 'development','log' => array('level' => Log::LEVEL_ALL, 'append' => true, 'limit' => 10,), 'curl' => array('log' => false, 'retry' => 3,),'temp' => array('path' => __DIR__, 'active' => true,),));
    }
}

class PDEBUG{
    const USE_FIDDLER = false;
}

Not sure wrong I am doing?

Omicans
  • 531
  • 1
  • 8
  • 26

2 Answers2

1

Please remove API tokens, and regenerate them in the application, by publishing API token you are giving access to your account to everyone.

Sergei
  • 41
  • 1
1

You need to change the require to:

require_once \pipedriveintegration\Config::PHP_LIB;

Your namespace is pipedriveintegration not pipedriveintegrationConfig. Also the constant is inside the class Config.

I don't know which PHP version are you using but I tested this in 5.6 and it works.

Dez
  • 5,702
  • 8
  • 42
  • 51