Php 为什么有些类没有从CodeIgniter上的库中加载

Php 为什么有些类没有从CodeIgniter上的库中加载,php,codeigniter,autoload,bootstrapping,evernote,Php,Codeigniter,Autoload,Bootstrapping,Evernote,我正在尝试将Evernote SDK集成到我的CodeIgniter web应用程序中,库中的一些类被加载,而其他类则没有加载,:-S我不明白为什么 我有一段简单的代码: $access_token = 'my validated access token '; // Get User Store $userStoreTrans; try{ $userStoreTrans = new THttpClient(USER_STORE_HOST, USER_STORE_PORT, USER_

我正在尝试将Evernote SDK集成到我的CodeIgniter web应用程序中,库中的一些类被加载,而其他类则没有加载,:-S我不明白为什么

我有一段简单的代码:

$access_token = 'my validated access token ';

// Get User Store
$userStoreTrans;
try{
    $userStoreTrans = new THttpClient(USER_STORE_HOST, USER_STORE_PORT, USER_STORE_URL, USER_STORE_PROTO);
}
catch(TTransportException $e)
{
    print $e->errorCode.' Message:'.$e->parameter;
}

$userStoreProt = new TBinaryProtocol($userStoreTrans);
$userStoreClient = new UserStoreClient($userStoreProt, $userStoreProt);
虽然正确创建了Evernote SDK中的
$userStoreTrans
$userStoreProt
类,但
THttpClient
TBinaryProtocol
类,
$userStoreClient
抛出了在…/home.php中找不到的
类“userStoreClient”

我不明白为什么有些类被识别而有些类没有被识别,我能看到的主要区别是“TClasses”在
evernotesdkphp/lib/transport/*.php
evernotesdkphp/lib/protocol/*.php
下,而UserStoreClient有一个额外的文件夹
evernotesdkphp/lib/packages/UserStore/*.php

我将解释如何将evernote sdk php包括到我的CodeIgniter安装中:

这是我的CodeIgniter config/autoload.php

$autoload['libraries'] = array('database','session','form_validation','security','tank_auth','Evernote_bootstrap');
这是我的Evernote_bootstrap.php文件

<?php if (!defined('BASEPATH')) exit('No direct script access allowed');

define("EVERNOTE_LIBS", dirname(__FILE__) . DIRECTORY_SEPARATOR . "evernote-sdk-php/lib");

// add ourselves to include path
ini_set("include_path", ini_get("include_path") . ":" . EVERNOTE_LIBS);

require_once("evernote-sdk-php/lib/autoload.php");
require_once("evernote-oauth/functions.php");

class Evernote_Bootstrap
{
    function __construct()
    {
        // log_message('debug','Evernote_Bootstrap');
    }
}
?>
然后我记录了那个库,看起来工作正常。您可以看到主要的重要日志:
log_message('debug',str_var_dump($allLibs))
log_消息('debug','all报废类:'.str_var_dump($GLOBALS['THRIFT_AUTOLOAD'))和输出::

正如您所看到的,UserStore类似乎比THttpClient或TBinaryProtocol加载得同样好。。。你知道这个问题吗


我不知道它是否重要,但我注意到在autoload.php上定义的
$GLOBALS['THRIFT\u ROOT']
,不能从CI控制器访问。可能我遗漏了一些关于CI体系结构的信息。

在我们最新的SDK更新中,UserStoreClient(和其他SDK类)位于适当的名称空间中。假设您正在使用我们生成的代码,您是否导入了您正在使用的类?例如

use EDAM\UserStore\UserStoreClient;
use EDAM\UserStore\UserStoreClient;