ThinkPHP框架使用心得一 sae环境下使用tp
ThinkPHP是国内一款非常优秀的开源框架,它使用面向对象的开发结构和MVC模式,融合了Struts的Action和Dao思想和JSP的TagLib(标签库)、RoR的ORM映射和ActiveRecord模式,封装了CURD和一些常用操作,单一入口模式等,在模版引擎、缓存机制、认证机制和扩展性方面均有独特的表现。 满足了一般的快捷开发需求。ThinkPHP官方地址:www.thinkphp.cn
SinaAppEngine,简称sae,根据sina的官方介绍,是国内第一个共有云计算平台,简言之,就是简单高效的分布式Web服务开发、运行平台。关于这个平台请参见http://sae.sina.com.cn
我从毕业开始,入职接近半年时间,期间开发工作基本都是基于ThinkPHP框架展开。所以,我想结合目前所学,所知的理解加上LAMP兄弟连的tp讲解视频,温故知新的过程中,完成这个系列博文的编写。之前我做毕业设计时接触了sae,当时没深入了解,现在,我打算将我的测试应用部署在这个平台上,没办法,新人,没钱啊,不然我也打算找个vps试试了。 平时有工作上的事情以及个人学习的时间,这个系列的编辑可能会断断续续。 希望不会半途而废,我会坚持对自己负责的态度好好去完成。
ThinkPHP目前已经推出3.1版本,但是公司使用的是比较稳定的2.1版本,我个人学习的也是2.1版本,所以,这个系列中涉及的是跟2.1变化不大的2.2版本,因为,官方推出了支持2.2的sae引擎。拓展引擎的下载地址为:http://www.thinkphp.cn/extend/engine.html
下面是将拓展引擎加入ThinkPHP核心代码中。 下载的引擎中有一个使用方法的说明文档。 操作就是把引擎包中的Mode文件夹覆盖到thinkphp的核心源码包中,然后用SeaThinkPHP.php文件放到核心源码包中,以后使用过程中直接在入口文件中调用SeaThinkPHP.php而不是以前的ThinkPHP.php。使用上添加引擎包跟没有添加之前基本一样,只是入口文件加载的文件名不一样。不适用sae引擎包的话,这块可以不管,直接加载原本的类文件。
sae不支持IO操作,所以,需要在本地先建立起应用的目录结构,然后往平台上更新。
入口文件的定义:
define("APP_NAME","MyOA");
define("APP_PATH","./MyOA");
require THINK_PATH."/SaeThinkPHP.php";//包含Sae核心文件
//require THINK_PATH."/ThinkPHP.php";//默认的加载文件
App::run();
入口文件中定义了ThinkPHP核心包的路径以及应用的名称和路径,然后加载核心类,使用run方法运行程序,这样ThinkPHP会自动帮我们建立应用的目录结构,当然,要是对该目录结构熟悉也可以直接手动建立相关目录。我使用netbeans来开发,这样也方便查看目录结构
然后使用svn将源码上传到sae平台上。
在这里我遇到一个问题
这是因为我初次部署,没有开启Memcache,具体参见http://sae.sina.com.cn/?m=devcenter&catId=201
再次刷新页面,就可以发现应用可以正常使用。
下面一篇博文,我会用到tp的CURD来建立用户模块,希望那时候我对tp的rbac已经掌握,那样,我可能会把rabc插进来,期待ing