1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- <?php
- // +----------------------------------------------------------------------
- // | ThinkPHP [ WE CAN DO IT JUST THINK IT ]
- // +----------------------------------------------------------------------
- // | Copyright (c) 2006-2014 http://thinkphp.cn All rights reserved.
- // +----------------------------------------------------------------------
- // | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
- // +----------------------------------------------------------------------
- // | Author: liu21st <liu21st@gmail.com>
- // +----------------------------------------------------------------------
- namespace Think;
- /**
- * ThinkPHP API模式控制器基类
- */
- abstract class Controller {
- /**
- * 架构函数
- * @access public
- */
- public function __construct() {
- //控制器初始化
- if(method_exists($this,'_initialize'))
- $this->_initialize();
- }
- /**
- * 魔术方法 有不存在的操作的时候执行
- * @access public
- * @param string $method 方法名
- * @param array $args 参数
- * @return mixed
- */
- public function __call($method,$args) {
- if( 0 === strcasecmp($method,ACTION_NAME.C('ACTION_SUFFIX'))) {
- if(method_exists($this,'_empty')) {
- // 如果定义了_empty操作 则调用
- $this->_empty($method,$args);
- }else{
- E(L('_ERROR_ACTION_').':'.ACTION_NAME);
- }
- }else{
- E(__CLASS__.':'.$method.L('_METHOD_NOT_EXIST_'));
- return;
- }
- }
- /**
- * Ajax方式返回数据到客户端
- * @access protected
- * @param mixed $data 要返回的数据
- * @param String $type AJAX返回数据格式
- * @return void
- */
- protected function ajaxReturn($data,$type='') {
- if(empty($type)) $type = C('DEFAULT_AJAX_RETURN');
- switch (strtoupper($type)){
- case 'JSON' :
- // 返回JSON数据格式到客户端 包含状态信息
- header('Content-Type:application/json; charset=utf-8');
- exit(json_encode($data));
- case 'XML' :
- // 返回xml格式数据
- header('Content-Type:text/xml; charset=utf-8');
- exit(xml_encode($data));
- case 'JSONP':
- // 返回JSON数据格式到客户端 包含状态信息
- header('Content-Type:application/json; charset=utf-8');
- $handler = isset($_GET[C('VAR_JSONP_HANDLER')]) ? $_GET[C('VAR_JSONP_HANDLER')] : C('DEFAULT_JSONP_HANDLER');
- exit($handler.'('.json_encode($data).');');
- case 'EVAL' :
- // 返回可执行的js脚本
- header('Content-Type:text/html; charset=utf-8');
- exit($data);
- }
- }
- /**
- * Action跳转(URL重定向) 支持指定模块和延时跳转
- * @access protected
- * @param string $url 跳转的URL表达式
- * @param array $params 其它URL参数
- * @param integer $delay 延时跳转的时间 单位为秒
- * @param string $msg 跳转提示信息
- * @return void
- */
- protected function redirect($url,$params=array(),$delay=0,$msg='') {
- $url = U($url,$params);
- redirect($url,$delay,$msg);
- }
- }
|