简单说明如何使用ThinkPHP云引擎扩展

ThinkPHP">正式发布了云引擎版本,本篇就简单说明下如何使用云引擎扩展。

概述

ThinkPHP的云引擎扩展是为云平台服务的ThinkPHP扩展。通常所说的云平台是指PaaS类型的云计算平台(服务),他们的名称一般叫App Engine 。如新浪的有SAE(Sina App Engine) ,百度有 BAE(Baidu App Engine),等等。
可以看到当今云计算已经十分流行,但是云计算有两个缺点。
学习成本高: 我们要学习云计算提供的服务怎么使用,每使用一个云平台都需要学习一次。
平台不兼容: 因为我们使用了这个云平台的服务,其他云平台没有和它相同的服务,导致我们的程序对此云平台有依赖, 不能移植到其他云平台,也不能移植到普通环境。
ThinkPHP的引擎扩展出现的目的就是为了解决云计算的两大缺点。降低用户学习成本,让用户只要会使用ThinkPHP就能用所有的云平台,我们还是按照传统使用ThinkPHP的方式,但你已经不知不觉使用了云计算的服务。解决平台兼容性问题,同样的代码既能在普通环境运行,也能在各种云平台上运行。
ThinkPHP原来的SAE引擎,只适合在SAE平台下使用,不能在其他云平台下使用,所以只是一种支持云平台的探索,而Cluster引擎扩展适合所有云平台以及分布式集群环境。
Cluster引擎采用IO分离的机制,实现了一个引擎扩展,通用所有云平台,所有分布式环境,普通环境下也可以运行,真正的打破了云平台不兼容的缺点。开发人员用ThinkPHP的Cluster引擎写出的程序将彻底摆脱对云平台的依赖,从而实现一次编码,多处(云平台)部署。

下载

我们首先需要下载Cluster引擎扩展,选择下载其中任意一个:
云引擎扩展单独下载
ThinkPHP云引擎版本下载
如果是下载的引擎扩展,下载后解压缩放入系统的Extend/Engine/目录。
云引擎版本则集成了最新github版本的3.1.2核心包和最新的Cluster引擎扩展,以及常用的驱动和类库扩展。

入口文件定义

新版的引擎扩展无需在入口文件中载入引擎入口文件,和使用标准模式一样载入框架入口文件即可,然后在入口文件定义常量ENGINE_NAME为引擎扩展的名称即可,如定义为: 然后在本地运行你的代码,生成项目目录。
注意:项目目录一定要在本地生成,不可在云平台下生成, 因为云平台往往是不可写的环境。

<?php define('APP_NAME','App'); define('APP_PATH','./App/'); define('THINK_PATH','./ThinkPHP/'); define('ENGINE_NAME','cluster'); require THINK_PATH.'ThinkPHP.php'; 

上传代码到云平台

然后将你生成的项目目录和文件以及ThinkPHP的核心文件上传到云平台。因为ThinkPHP Cluster引擎在云平台下不会生成任何文件,因此你无需上传项目的Runtime目录。
下面以SAE和BAE为例,说明如何上传代码到云平台。

上传代码到SAE

将代码上传到SAE可以参考SAE文档: http://sae.sina.com.cn/?m=devcenter&catId=212
上传代码后,还需要开启一些服务。

开启Memcahce服务
进入SAE的应用列表: http://sae.sina.com.cn/?m=myapp
选择你刚才上传代码的应用。 然后在网站左侧的服务管理处 点击Memcache,然后开启Memcahe服务即可。
ThinkPHP Cluster在SAE平台使用Memcache存储核心编译缓存,模板缓存以及S缓存。你不用学习SAE的Memcache服务怎么使用, 如果你需要使用Memcache,使用ThinkPHP的S函数即可。

开启KVDB服务
开启KVDB服务和开启Memcahce服务一样,也需要在服务管理处进行开启。
ThinkPHP Cluster将静态缓存,F缓存存入了KVDB,你不用学习SAE的KVDB怎么使用,如果需要使用KVDB,使用ThinkPHP的F函数即可。

创建Storage
ThinkPHP上传文件使用UploadFile.class.php。 在SAE上一样是使用UploadFile类上传文件,用法不变。只是SAE是不可写的环境,文件不会被上传到代码空间而是上传到了Storage 。 我们需要在SAE服务管理处创建storage , storage的domain名称和你的上传路径相关,是你上传路径中的第一个文件夹名称。 比如我们的上传代码如下: 因为上传路径为'./Public/upload/' 第一个文件夹名词为Public, 所以我们需要在SAE创建storage的domain名词为public,然后这段上传代码在本地也能运行,在SAE上也能运行,在SAE上文件被上传到了storage中。
注:1,SAE平台storage的domain不区分大小写,统一小写, 所以domain名称Public 可以不用首字母大写。
2,使用的UploadFile类,请使用首次运行代码生成项目目录中的Lib/ORG/UploadFile.class.php文件,这个文件已经被修改适合所有云平台。

import("@.ORG.UploadFile");    $config=array(         'allowExts'=>array('jpg','gif','png'),         'savePath'=>'./Public/upload/',         'saveRule'=>'time',     );     $upload = new UploadFile($config); if(!$upload->upload()){     $this->error($upload->getErrorMsg()); } 

将代码上传到BAE

一样的代码,不仅能上传到SAE,上传到BAE也可以运行,上传到所有其他云平台也可以运行。但BAE目前还在内测,使用需要先获得邀请码, 如果你无法使用BAE,可以测试一下我们已经部署在BAE上的应用: http://tpcluster.duapp.com/
BAE和SAE一样也可以使用SVN部署代码,在创建应用后会获得一个SVN地址。
上传完代码后,需要开启一些服务。

开启cache服务
进入你的管理中心 http://developer.baidu.com/dev 进入你刚才上传的应用,在左侧的服务管理处点击cache服务。
然后初始化服务即可。BAE的cache服务实际也是Memcache实现的。
ThinkPHP在BAE上将核心缓存,模板缓存,S缓存存入了Memcache, BAE并没有像SAE的KVDB那样的nosql服务,所以F函数,静态缓存也都存入了Memcache(过期时间是0,永不过期)。
注意: BAE虽然并没有像SAE那样强制环境为不可写的环境。但是我们不要在BAE上写入文件,因为云平台都是分布式环境,写入的文件很容易读取不到。

开启云存储服务
和SAE一样,ThinkPHP在BAE上传文件一样使用UplaodFile类,用法不变。但在BAE文件是被存在云存储中。
在管理中心的左侧点击“我的云服务” , 在新打开的页面的左侧菜单中点击“云存储”,在这里需要创建bucket, 这里的bucket 就相当于是SAE storage的domain。 Bucket的名称和你的上传路径相关,是你路径中的第一个文件夹名称。 如果上传路径是 ./Public/upload/ 按理说 我们要建立一个名为public的bucket,但是BAE的存储的bucket要求是全局唯一的, 别人创建了一个名为public的bucket,你就不能再创建了。 所以我们要加上前缀。 假设我们的前缀为“think-” , 创建的bucket名词为 “think-public” (和SAE一样,名词全部小写) 。 而这个think- 的前缀需要在 BAE配置文件中配置。编辑你项目目录下 Conf/config_bae.php 文件,配置

'BUCKET_PREFIX'=>'think-'

时间: 2024-09-15 05:42:41

简单说明如何使用ThinkPHP云引擎扩展的相关文章

全面拥抱云时代 ThinkPHP云引擎版本发布

  互联网领域的云平台化已经成为云时代基础架构新创领域的方向之一,云时代的需求与技术创新也是不少开发者为之考虑和前进的未来方向.云计划,云产品,云应用,云享受,随着云服务的大力深入,更多企业和开发者开始漫步云端,而一款好用又兼容的云引擎技术,更是广大开发者所为之追求的. 伴随着云服务的强势入侵,引领互联网发展的云计算也成为了未来走势的重中之重.从3.0版本的SAE引擎开始,ThinkPHP已经开始迈出了支持云平台的第一步,不同版本的升级改进也在为用户提供更好的云服务而不断优化.面对云计算技术"扎

ThinkPHP云引擎版本发布 从3.0版本新增SAE引擎

从3.0版本的SAE引擎开始,ThinkPHP已经开始支持云平台,但是随着国内不同的云平台风起云涌,不同的云引擎也容易给开发者造成了不少的困惑,2013年新年伊始,官方推出了针对所有云平台和分布式系统而开发的Cluster云引擎扩展. Cluster云引擎采用IO分离的机制,实现了一个引擎扩展,通用所有云平台和所有分布式环境,普通环境下也可以运行,真正的打破了云平台不兼容的缺点.开发者使用Cluster引擎写出的程序将对云平台没有依赖,可以很方便的移植到另外的云平台. 为了方便大家使用,提供了两

ThinkPHP支持3.1.3的SAE引擎和云引擎版本更新

ThinkPHP支持3.1.3的SAE引擎和云引擎版本更新发布: 云引擎扩展 ThinkPHP的云引擎扩展是为云平台服务的ThinkPHP扩展.通常所说的云平台是指PaaS类型的http://www.aliyun.com/zixun/aggregation/13423.html">云计算平台(服务),他们的名称一般叫App Engine .如新浪的有SAE(Sina App Engine) ,百度有 BAE(Baidu App Engine),等等.可以看到当今云计算已经十分流行,但是云计

一分钟了解阿里云产品:云引擎ACE概述

阿里云发布了诸多产品,今天让我们一起来了解下云引擎ACE(AliCloud Engine)吧! 什么是云引擎ACE呢?下面我来简单介绍下吧.   云引擎是阿里云推出的应用托管平台,支持托管Java.PHP.Node.js.Python等语言开发的Web应用和API服务,大大简化用户在ECS上的应用运维工作. 您只需上传开发完成的应用代码,ACE会自动完成资源分配.运行环境初始化.程序启动.负载均衡配置.运行状况监控.日志采集.自动伸缩等一系列连贯的部署工作.   与传统应用运维相比, ACE都有

thinkPHP简单导入和使用阿里云OSSsdk的方法

本文实例讲述了thinkPHP简单导入和使用阿里云OSSsdk的方法.分享给大家供大家参考,具体如下: 照做绝对行,在ThinkPHP中,第三方库都放在ThinkPHP/Library/Vendor/路径下. 1.下载OSS PHP SDK:https://help.aliyun.com/document_detail/oss/sdk/php-sdk/install.html 2.在ThinkPHP/Library/Vendor/下建立一个OSS目录,将解压后的SDK拷贝到这个目录: 在Thin

地理信息与云计算的结合:“GIS云引擎”成焦点

在4月底召开的"2012高校GIS论坛"上,GIS.云计算无疑成为了最受关注的话题.由于GIS自身的应用特点,非常适合采用云计算模式.未来,云计算将极大地促进GIS产业的发展,将带动GIS技术.应用模式.部署方式等发生重大变化. 随着<国务院关于促进地理信息产业发展的意见>.<全国基础测绘"十二五"规划>在内的一系列发展地理信息产业的规划的出台,地理信息产业将进入高速发展期.2010年全国地理信息产业总产值达到1000亿元,国家测绘地理信息局

一分钟了解阿里云产品:云引擎ACE五大热点技术问题分析

在上一篇文章中,我们为大家介绍云引擎ACE的概况,云引擎ACE(AliCloud Engine)是阿里云推出的应用托管平台,支持托管Java.PHP.Node.js.Python等语言开发的Web应用和API服务,大大简化用户在ECS上的应用运维工作.那在使用过程中,经常遇到的热门技术问题有哪些呢?   基础架构: https://help.aliyun.com/document_detail/ace/brief-manual/ace-summary/architecture.html?spm=

ThinkPHP模板引擎之导入资源文件方法详解_php实例

一般而言,网页传统方式的导入外部JS和CSS等资源文件的方法是直接在模板文件使用: <script type='text/javascript' src='/Public/Js/Util/Array.js'> <link rel="stylesheet" type="text/css" href="/App/Tpl/default/Public/css/style.css" /> ThinkPHP的模板引擎提供了专门的标签

ThinkPHP的Widget扩展实例_php实例

ThinkPHP的Widget扩展用于根据页面需要输出不同内容,它在项目目录中的Lib/Widget下定义. 具体定义如下: class NewsListWidget extends Widget{ public function render($data){ // code... } } 需要注意: 1.Widget是一个抽象类,其中有一个抽象方法(abstract)render,必须在子类中实现: 2.Widget的render方法必须使用return返回,而不是直接输出: 3.$data是