|
|
|
|
<?php
|
|
|
|
|
// +----------------------------------------------------------------------
|
|
|
|
|
// | OneThink [ WE CAN DO IT JUST THINK IT ]
|
|
|
|
|
// +----------------------------------------------------------------------
|
|
|
|
|
// | Copyright (c) 2013 http://www.onethink.cn All rights reserved.
|
|
|
|
|
// +----------------------------------------------------------------------
|
|
|
|
|
// | Author: 麦当苗儿 <zuojiazi@vip.qq.com> <http://www.zjzit.cn>
|
|
|
|
|
// +----------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
namespace User\Api;
|
|
|
|
|
define('UC_CLIENT_PATH', dirname(dirname(__FILE__)));
|
|
|
|
|
|
|
|
|
|
//载入配置文件
|
|
|
|
|
require_cache(UC_CLIENT_PATH . '/Conf/config.php');
|
|
|
|
|
|
|
|
|
|
//载入函数库文件
|
|
|
|
|
require_cache(UC_CLIENT_PATH . '/Common/common.php');
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* UC API调用控制器层
|
|
|
|
|
* 调用方法 A('Uc/User', 'Api')->login($username, $password, $type);
|
|
|
|
|
*/
|
|
|
|
|
abstract class Api{
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* API调用模型实例
|
|
|
|
|
* @access protected
|
|
|
|
|
* @var object
|
|
|
|
|
*/
|
|
|
|
|
protected $model;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 构造方法,检测相关配置
|
|
|
|
|
*/
|
|
|
|
|
public function __construct(){
|
|
|
|
|
//相关配置检测
|
|
|
|
|
defined('UC_APP_ID') || throw_exception('UC配置错误:缺少UC_APP_ID');
|
|
|
|
|
defined('UC_API_TYPE') || throw_exception('UC配置错误:缺少UC_APP_API_TYPE');
|
|
|
|
|
defined('UC_AUTH_KEY') || throw_exception('UC配置错误:缺少UC_APP_AUTH_KEY');
|
|
|
|
|
defined('UC_DB_DSN') || throw_exception('UC配置错误:缺少UC_DB_DSN');
|
|
|
|
|
defined('UC_TABLE_PREFIX') || throw_exception('UC配置错误:缺少UC_TABLE_PREFIX');
|
|
|
|
|
if(UC_API_TYPE != 'Model' && UC_API_TYPE != 'Service'){
|
|
|
|
|
throw_exception('UC配置错误:UC_API_TYPE只能为 Model 或 Service');
|
|
|
|
|
}
|
|
|
|
|
if(UC_API_TYPE == 'Service' && UC_AUTH_KEY == ''){
|
|
|
|
|
throw_exception('UC配置错误:Service方式调用Api时UC_AUTH_KEY不能为空');
|
|
|
|
|
}
|
|
|
|
|
if(UC_API_TYPE == 'Model' && UC_DB_DSN == ''){
|
|
|
|
|
throw_exception('UC配置错误:Model方式调用Api时UC_DB_DSN不能为空');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$this->_init();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 抽象方法,用于设置模型实例
|
|
|
|
|
*/
|
|
|
|
|
abstract protected function _init();
|
|
|
|
|
|
|
|
|
|
}
|