Php 为什么有些类没有从CodeIgniter上的库中加载
我正在尝试将Evernote SDK集成到我的CodeIgniter web应用程序中,库中的一些类被加载,而其他类则没有加载,:-S我不明白为什么 我有一段简单的代码: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_
$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;