thinkphp SAE】的更多相关文章

SAE介绍 Sina App Engine(简称SAE)是新浪研发中心开发的国内首个公有云计算平台,是新浪云计算战略的核心组成部分,作为一个简单高效的分布式Web服务开发.运行平台越来越受开发者青睐. SAE环境和普通环境有所不同,它是一个分布式服务器集群,能让你的程序同时运行在多台服务器中.并提供了很多高效的分布式服务.SAE为了提升性能和安全,禁止了本地IO写操作,使用MemcacheX.Storage等存储型服务代替传统IO操作,效率比传统IO读写操作高,有效解决因IO瓶颈导致程序性能低下…
接上一章的内容,我们继续来看Think.class.php文件的start方法 static public function start() { // 注册AUTOLOAD方法 spl_autoload_register('Think\Think::autoload'); // 设定错误和异常处理 register_shutdown_function('Think\Think::fatalError'); set_error_handler('Think\Think::appError'); s…
缘起 SAE 和其他的平台有些不同,不能在服务器上运行 Composer 来安装各种包,必须把源码都提交上去.一般的做法,可能是直接把源码的所有文件复制到目录中,添加到版本库.不过,这样就失去了与上游代码的同步的优势.还好 git 提供了另一个功能叫 subtree,不但提供了版本追踪的功能,让代码可以一直和上游同步,同时源码文件还能提交到当前的仓库中. 过程 首先,当然是要安装 git 的 subtree 命令.这个命令虽然随 git 一起安装了,但默认并没有启用.每个平台的安装方法有所不同,…
因为最近在学thinkphp跟着做一个小商城. 没有使用thinkphp自带的think引擎,使用的是smarty引擎. 在sea中使用的时候出现了问题.已经是前几天的事了,问题图片没保存下来. 在网上百度了很多方法,都是一样的内容: 首先进入sae应用中的应用管理中,在服务管理中开启Memcache一个初始化. 然后修改Smarty的配置文件: // For SAE 编译文件存放在memcache中 $smarty->compile_dir = 'saemc://smartytpl/'; $s…
ThinkPHP3.2核心内置了对SAE平台的支持(采用了应用模式的方式),具有自己的独创特性,能够最大程度的使用ThinkPHP的标准特性,让开发人员感受不到SAE和普通环境的差别.甚至可以不学习任何SAE知识,只要会ThinkPHP开发,就能将你的程序运行在SAE上. SAE版ThinkPHP具有以下特性: 横跨性:能让同样的代码既能在SAE环境下运行,也能在普通环境下运行.解决了使用SAE不能在本地调试代码的问题. 平滑性:我们还是按照以前一样使用ThinkPHP,但是您已经不知不觉的使用…
请在入口文件定义常量,SAE_RUNTIME为true请在本地打开命令行, cd 到项目所在文件夹,执行命令: php index.php 此时会在./App/Sae_Runtime目录下批量生成缓存文件, 请将生成的缓存文件上传到SAE开启Sae Runtime模式后 , 在SAE上运行框架将不会占用Memcache,能节约云豆并能避免Memcache的瓶颈…
# Thinkphp ## 什么是框架?(框架开发)> 框架就是通过提供一个开发Web程序的基本框架(比如提供了分页类.数据库操作类.文件操作类等),使用框架可以减少开发者代码的编写.> 简单理解就是别人写好了很多东西,我们直接拿过来用.最后拼凑成一个项目(可以是商城.论坛等) . ## 什么是二次开发* 所谓二次开发就是在现有的软件上进行定制修改,功能的拓展,然后达到自己想要的功能,一般来说都不会改变原有项目的主要内容. ### 商城二次开发框架* ecshop* shopnc* ecmal…
升级指导 http://www.kancloud.cn/manual/thinkphp5/163239 从V5.0.1升级到V5.0.2 从V5.0.1升级到V5.0.2需要注意如下事项: 下列模型属性和方法由原来的静态(static)定义改为动态定义: 聚合模型的relationModel属性 Model类的useGlobalScope 属性 软删除属性 deleteTime属性 全局查询范围方法base改为动态方法 原来的join方法和view方法的第一个参数规范化,支持下面三种用法: 用法…
应用移植指南 一,为什么要移植应用 SAE禁止IO写操作,代码目录不能写入.这意味着普通程序的上传图片.生成缓存等操作都不能在SAE上正常运行,这时候你需要对这些代码进行修改后才能让你的程序运行在SAE上. SAE为什么要禁止IO写操作? SAE采用分布式架构设计, 应用代码将部署在多台前端服务器上, 每次访问请求可能到达不同服务器.(如下图): 假设现在有A.B.C.D四台服务器.用户上传一张图片到A服务器,第二次访问请求可能到达B服务器,此时将无法获取保存在A服务器上的图片. SAE使用Me…
1.远程图片保存至Storage 其中public是Storage中的容器名,"目录1/目录2/"是容器下的路径 $file_content 是得到的文件数据 $s = new SaeStorage(); $file_content= file_get_contents('http://abc.pmg'); //括号中的为远程图片地址 $s->write ( 'public' , '目录1/目录2/abc.png' , $file_content);      2.sae上的上传…
在上一章我们说到,ThinkPHP.php在设置完框架所需要的变量和调教好环境后,在最后调用了  Think\Think::start();  即Think命名空间中的Think类的静态方法start,从而开启了引用的初始化.Think\Think就是tp框架的引导类,这个类的主要作用就是负责诸多配置加载,注册核心系统扩展(自动加载类库.异常处理.错误处理等),管理和维护类实例.别名映射,可以一说是一个框架的工厂. 下面我们就来分析一下这个类. 1:类所在的路径 ThinkPHP\Library…
正如官方文档上所介绍的,thinkphp使用单一入口,所有的请求都从默认的index.php文件进入.当然不是说一定非得从index.php进入,这应该取决于你的服务器配置,一般服务器都会有默认的首页,比如index.php,index.html,所以一般访问域名都会先默认访问上述文件,你还可以创建多个应用,一个应用对应一个入口文件,所有的入口文件都引用一套thinkphp类库. 我们来看index.php都干了些什么.  index.php主要任务是定义应用名称和引用类库路径.当然也可以定义一…
假设有这样一个命题:需要对一个已有系统进行移植,有没有什么系统是适合用来作为进行快速移植的基础的.能解决每个系统的基本问题,只需考虑相关业务逻辑问题. OneThink是TP团队官方出品. http://www.onethink.cn/ OneThink特性介绍: 1. 基于ThinkPHP最新版本Thinkphp3.2. 2. 模块化:全新的架构和模块化的开发机制,便于灵活扩展和二次开发. 3. 文档模型/分类体系:通过和文档模型绑定,以及不同的文档类型,不同分类可以实现差异化的功能,轻松实现…
一.跨控制器调用 UserController.class.php <?php namespace Home/Controller use Think/Controller class UserController extends Controller{ public function show(){ //TODO } } IndexController.class.php(方法一) <?php namespace Home/Controller use Think/Controller cl…
thinkphp 运行机制: thinkphp首先设置一些常量.然后运行Think对象(系统环境),装载think的运行环境,包括:自动加载.异常处理.功能核心等.环境准备好后,运行App对象(应用程序),App对象会调用调度者(dispatcher)解析用户请求,然后通过反射机制实现控制器的访问(控制器的前置操作和后置操作),控制器中,通过自动加载机制访问model和其他层的功能,通过display调用View(视图类),渲染视图.具体情况如下图:  应用模式和状态: 应用模式可以支持不同运行…
第一步:         thinkPHP3.2.3完整版,目录结构如下 第二步:在新浪sae上面创建一个新应用 第三步:用svn  down,下来会有两个文件:index.php.config.yaml 这时候,把下载好的   thinkPHP3.2.3完整版(Thinkphp文件夹.Public文件夹.index.php文件,其他的没有用)先在本地运行一下,先生成目录,[ps:sae上面没有写的权限], 然后给config.php配置如下: //'配置项'=>'配置值' /* 数据库设置 *…
在用PHPExcel1.8.0来处理excel时,本地测试时好使的,但是要把代码部署到SAE,在上传代码的时候就会遇到这个问题. 部署代码中遇到问题: -1:fail to get xml content 在网上查了下,好多人在用wordpress和weiPHP的时候也遇到了这个问题,解决办法是,用wordpress for sae,weiPHP也是修改那什么代码,对PHPExcel没什么参考价值.暂时我也不知道这个问题对自己的应用有什么影响,所以暂且略过. 在结束部署之后,访问页面的时候,在需…
最近面试了一些公司,发现自己的对于架构能力的不足,于是决定开始从最基本的代码做起.先看看大牛们怎么架构整个框架的.鉴于国外的框架比较难懂,于是就选择了国内比较流行的thinkphp来进行研究. 下面写的内容我会定期更新,全是自己的个人之见. 1.首先我们从入口文件index.php看起 if(version_compare(PHP_VERSION,'5.3.0','<')) die('require PHP > 5.3.0 !'); // 开启调试模式 建议开发阶段开启 部署阶段注释或者设为f…
作者:阿里云用户bailimei 先前我已发布一篇关于ACE的评测,在跟朋友聊天的时候我们讨论了目前市面上的三款云引擎产品,这三家的云引擎我都有在用,今天有时间顺便写篇关于阿里云ACE.百度BAE和新浪SAE的对比评测.     1.应用创建对比: 三家流程基本都差不多,都比较简单易用.不同的是ACE可以选择集群模式,ACE需创建SVN版本并发布才能启用应用,而BAE和SAE均无需创建SVN,都是创建应用后自动生成的.其中BAE创建后还需选择执行单元并添加部署后才能用SVN上传代码.SAE创建后…
ThinkPHP框架部署 1.下载ThinkPHP框架 下载地址:http://www.thinkphp.cn/ ThinkPHP官方网站 下载ThinkPHP3.2.3完整版,下载后如下图所示: Application:应用项目目录,可更改 Public:公用资源目录,主要用于存放images/css/js ThinkPHP:ThinkPHP核心目录 .htaccess:重写文件(伪静态.重写模式) index.php:项目入口文件 2.ThinkPHP文件夹分析 Common:核心函数库 C…
原文:ThinkPHP 3.2 开发过程 设置所有项目的公共配置Application\Common\Conf\config.php,SAE模式下配置文件为config_sae.php 配置默认的模块 'DEFAULT_MODULE' => 'Home', 配置禁止客户端访问的模块 'MODULE_DENY_LIST' => array('Common'), SAE配置: 修改入口文件index.php ,在require前增加 define('STORAGE_TYPE','sae'); de…
ThinkPHP应用模式提供了机会,改变核心框架.它可以让你的应用程序,以适应环境和其他许多不同的需求. 每一个应用模式都有自己的模式定义文件,相对与ThinkPHP3.1版本号.ThinkPHP3.2版本号相应用模式的扩展更加明白和清晰,在ThinkPHP3.1版本号中定义了Cli.Lite.Thin.AMF.PHPRPC.REST模式,其定义方式和ThinkPHP3.2版本号的方式大同小异.如有须要能够參考改动,当中Cli模式被ThinkPHP框架内置,不用单独定义Cli模式就可以正常使用,…
ThinkPHP5.0版本是一个颠覆和重构版本,官方团队历时十月,倾注了大量的时间和精力,采用全新的架构思想,引入了更多的PHP新特性,优化了核心,减少了依赖,实现了真正的惰性加载,支持composer,并针对API开发做了大量的优化,包括路由.日志.异常.模型.数据库.模板引擎和验证等模块都已经重构,不适合原有3.2项目的升级,请慎重考虑商业项目升级,但绝对是新项目的首选(无论是WEB还是API开发). ThinkPHP V5.0——为API开发而设计的高性能框架 [ 特性 ] 主要特性包括:…
一.云平台中云是指互联网,网络的一种比喻说法,顾名思义,这种平台允许开发者们或是将写好的程序放在“云”里运行,或是使用“云”里提供的服务,或二者皆是. 二.开发类云平台比较: 1.鼻祖 GOOGLE APP ENGINE 2.Sina app engine 3.阿里云 4.移动云平台 AVOS CLOUD 三.我们可以用sae做什么 1.代码svn托管,项目版本控制,利于团队开发 2.web服务,数据存储 3.运维 4.有用服务(发邮件,发短信等等) 四.开始使用sae 1.地址:http://…
公众号配置 1.微信支付过程中需要获取用户的openid,所以,仍需填写 网页授权域名 2.微信支付授权目录  Thinkphp目录格式为www.xxx.cn/home/wxpay/ 这里目录不能填写index.PHP,否则保存后域名会被过滤,index.php后面的内容直接处理掉.因此要求我们网站需配置为隐藏index.php也可访问的状态——URL Rewrite. sae下隐藏url: (1)项目模块下的config.php文件,URL_MODEL =>2; (2)config.yaml文…
ThinkPHP框架已部署到SAE(新浪云),且代码已获取到本地.眼前面临的问题就是,对ThinkPHP项目选择哪种开发工具(IDE)? 经过简单的查找比较,以及电脑里已装有Eclipse的因素,遂决定使用Eclipse PDT(Php Development Tools).(网络对其的描述为Zend Studio的阉割版,由此http://www.zend.com/products/studio/comparison可查看其与Zend Studio的功能对比,另:很多人建议对小型PHP项目,使…
文件上传 上传表单 在ThinkPHP中使用上传功能无需进行特别处理.例如,下面是一个带有附件上传的表单提交: <form action="__URL__/upload" enctype="multipart/form-data" method="post" > <input type="text" name="name" /> <input type="file&q…
在Nginx上部署ThinkPHP,解决Pathinfo问题 事实上.要解决nginx不支持pathinfo的问题.有两个解决思路,一是不使用pathinfo模式,二是改动nginx的配置文件,使它支持pathinfo. 为了使问题简单化,我选择了第一种方式.由于就另外一种方式,我查了非常多资料,发现大家的方法不尽同样.有的还区别非常大,easy造成误导,所以我选择从简出发,选择普通模式.尽管有一定的风险.当把index.php相应的前台代码改动完成之后.发现前台基本正常.但是后台仍然出现重定向…
ThinkPHP模版引擎之变量输出具体解释 使用ThinkPHP开发有一定时间了,今日对ThinkPHP的模板引擎变量解析深入了解了一下.做出一些总结,分享给大家供大家參考. 详细分析例如以下: 我们已经知道了在Action中使用assign方法能够给模板变量赋值,赋值后怎么在模板文件里输出变量的值呢? 假设我们在Action中赋值了一个name模板变量: $name = 'ThinkPHP'; $this->assign('name',$name); 使用内置的模板引擎输出变量,仅仅须要在模版…
ThinkPHP是什么?有何优点? ThinkPHP 是一个免费开源的,快速.简单的面向对象的 轻量级PHP开发框架,ThinkPHP为WEB应用开发提供了强有力的支持,这些支持包括: * MVC支持-基于多层模型(M).视图(V).控制器(C)的设计模式* ORM支持-提供了全功能和高性能的ORM支持,支持大部分数据库* 模板引擎支持-内置了高性能的基于标签库和XML标签的编译型模板引擎* RESTFul支持-通过REST控制器扩展提供了RESTFul支持,为你打造全新的URL设计和访问体验*…