让ThinkPHP支持腾讯的TAE

TAE是腾讯的云平台简称,包含了CEE、CVM、CMEM、CDB等服务。 本文主要讲解的是如何使用CEE+CDB(CMEM)来构建自己的应用。

以下名词解释均源自于官方:
CEE:CEE(Cloud Elastic Engine)弹性云引擎是一种Web引擎服务,通过提供已部署好php、nginx等基础web环境,让您仅需上传自己的代码,即可轻松地完成web服务的搭建。
CMEM:全称为Cloud Memcache,是腾讯云平台提供的极高性能、内存级、持久化、分布式的Key-Value存储服务。能力比memcached强(能落地) 简而言之一句话,CMEM就是经过腾讯优化过后的MEMCACHED。
CDB:CDB的全称是Cloud Database,完全兼容MySQL协议,适用于面向表结构的场景,适用MySQL的地方都可以使用CDB。

如何在CEE环境中使用ThinkPHP,最主要的问题就是缓存问题。CEE不允许写入任何文件,ThinkPHP赖以提高性能的各种缓存就不能实现,不过ThinkPHP云引擎版本是支持memcached作为缓存存储的。 接下来,主要讲解ThinkPHP的配置: index.php:

//在入口文件处 增加常量判断
define('TAE',TRUE);

APP项目IO目录下,auto.php:

//增加环境判断
if (TAE) {
define('IS_CLOUD', true);
define('IS_SAE', false);
define('IS_BAE', false);
require dirname(__FILE__) . '/tae.php';
define('IO_TRUE_NAME', 'tae');
} elseif (function_exists('saeAutoLoader')) {
define('IS_CLOUD', true);
define('IS_BAE', false);
define('IS_TAE', false);
require dirname(__FILE__) . '/sae.php';
define('IO_TRUE_NAME', 'sae');
} elseif (isset($_SERVER['HTTP_BAE_ENV_APPID'])) {
define('IS_CLOUD', true);
define('IS_SAE', false);
define('IS_TAE', false);
require dirname(__FILE__) . '/bae.php';
define('IO_TRUE_NAME', 'bae');
}else{
//.....正常环境
}

在IO目录下新建一个tae.php,用于配置cmem

//可以复制目录下sample文件来修改
if(!extension_loaded('memcache')){
header('Content-Type:text/html;charset=utf-8');
exit('您的环境不支持Memcache');
}
$global_mc=memcache_connect('cmem的ip',端口);

至此,你的ThinkPHP就可以在cee中运行了

标签: thinkphp, tae

仅有一条评论

  1. 思雨

    您好 ?请问IO目录是哪一个目录?我的Thinkphp3.2的版本?有案例吗?

添加新评论