PHP を thrift で使用しようとしていますが、特定のクラスが見つからないため、適切に実行できません。0.8.0 では問題なくこれを実行できましたが、0.9.0 をダウンロードしたので、thrift ファイルを適切に含める方法について途方に暮れています。
コードのスニペットは次のとおりです。
$GLOBALS['THRIFT_ROOT'] = '/home/user/final/Thrift';
require_once( $GLOBALS['THRIFT_ROOT'] . '/Transport/TSocket.php' );
require_once( $GLOBALS['THRIFT_ROOT'] . '/Transport/TBufferedTransport.php' );
require_once( $GLOBALS['THRIFT_ROOT'] . '/Protocol/TBinaryProtocol.php' );
require_once( 'Hbase/Hbase.php');
require_once( 'Hbase/Types.php');
use Hbase\HbaseClient;
try
{
$socket = new TSocket('127.0.0.1', 9090);
$transport = new TBufferedTransport($socket, 1024, 1024);
$protocol = new TBinaryProtocolAccelerated($transport);
$client = new HbaseClient( $protocol );
$transport->open();
//show all tables
$tables = $client->getTableNames();
foreach ( $tables as $name )
{
echo( " found: {$name}\n" );
}
}
catch (Exception $e)
{
echo "Exception: %e\r\n";
}
次に示すように、すべてのファイルがディレクトリに適切に配置されます。
しかし、コマンド ライン (php -f index.php) からファイルを実行すると、次のエラーが表示されます。
クラス 'Thrift\Transport\TTransport' が /home/user/final/Thrift/Transport/TSocket.php の 35 行目に見つかりません
次に何をすべきか本当に途方に暮れています.PHPで「use」コマンドまたは「namespace」を使用することに慣れていません.これはこれを解決するのに役立つと感じています. php の倹約の README には、symfony の使用についても言及されていますが、これは私をさらに混乱させます。
どんなアドバイスでも大歓迎です!
ありがとう!