《开发者沙龙.ppt》由会员分享,可在线阅读,更多相关《开发者沙龙.ppt(60页珍藏版)》请在三一办公上搜索。
1、2012 ThinkPHP开发者沙龙,2012.12.16 北京,活动安排,2012 ThinkPHP开发者沙龙,2012 ThinkPHP开发者沙龙,云计算中的ThinkPHP,主讲人:罗飞,在这里写上你的标题,副标题文字副标题文字,作者名字/日期,云计算中的ThinkPHP,罗飞(,000102030405,写上你的文字你的文字,目录,01 了解云计算02 SAE引擎的特性03 SAE引擎的使用,一,了解云计算,要点:1,云计算是一种理论,并不是特指某种技术。2,核心思想:服务共享。3,服务由服务提供者维护。4,服务具有弹性(按使用量付费,服务可随时开通关闭,可扩展性等)。,2023/6/
2、25,1.1 服务是什么,平台即服务(PaaS)(Platform-as-a-service)基础设施即服务(IaaS)(Infrastructure-as-a-service)软件即服务(SaaS)(Software-as-a-service)存储即服务(Storage-as-a-service)数据库即服务(Database-as-a-service)信息即服务(Information-as-a-service)流程即服务(Process-as-a-service)应用即服务(Application-as-a-service)集成即服务(Intergration-as-a-service)
3、安全即服务(Security-as-a-service)管理/治理即服务(Management/governance-as-a-service)测试即服务(Testing-as-a-service),2023/6/25,1.2 云计算的产品,平台即服务(PaaS):SAE(http:/);SAE是一个分布式的程序的运行平台,能你让你程序运行在多台服务器上,它支持PHP,Pyton,Java等语言。如果你需要找一个网站运行环境,可以考虑使用SAE。基础设施即服务(IaaS):SWS(http:/);SWS为大家提供了VPS这种基础设施,网站的运行环境需要大家自己搭建。SWS提供负载均衡、安全策略
4、等服务。如果大家需要VPS,可以考虑使用SWS,目前此产品还在内测阶段。软件即服务(SaaS):新浪云商店(http:/)新浪云商店为大家提供了各种软件(网站程序),用户只要点击鼠标就能搭建自己的网站。适合不懂技术,又想开网站的朋友。,2023/6/25,1.3 云计算的目的,每一种理论都是为了解决某个问题、到达某个目的。我们需要了解理论是要解决什么问题,不然就会导致理论的滥用。云计算的目的是:节约成本,快速开发。,2023/6/25,1.4,如何节约成本,低,高,低,高,低,高,不需要 需要 需要 不需要,以SAE为例:,2023/6/25,1.5 如何让我们快速开发,以SAE为例,SAE提
5、供了很多服务。方便我们快速开发。发送短信,可以用短信服务。发送邮件,可以用mail服务。图片要防盗链,可以设置storage。做定时任务,可以用cron。做排行榜,可以用Rank服务。做队列,可以用TaskQueue做全文检索,可以用全文检索服务。要优化程序,SAE提供了慢sql查询和性能检测。要做统计,SAE提供了各种报表。以上这些服务,不用你设计,不用你搭建,不用你维护。,2023/6/25,1.6 云计算的缺点,1,有学习成本2,平台不兼容,这时候,ThinkPHP的引擎扩展出现了。https:/兼容云平台。,2023/6/25,二,SAE引擎的特性,1,横跨性2,平滑性3,功能增强,解
6、决了平台兼容的问题,降低了学习成本,充分利用了SAE的服务,2023/6/25,2.1 横跨性,能让同样的代码既能在SAE环境下运行,也能在普通环境下运行。SAE引擎还自带SAE服务模拟功能。用户即使使用了原生的SAE服务(SaeStorage,SaeRank等)也能在本地运行,注:使用SAE引擎可以不用本地运行环境。,2023/6/25,我们还是按照以前一样使用ThinkPHP,但是您已经不知不觉的使用了SAE服务,不用特意学习SAE服务,降低了学习成本。,2.2 平滑性,2023/6/25,2.3 功能增强,短信预警发送短信备用数据库SAE Runtime缓存队列出队次数统计,2023/6
7、/25,三,SAE引擎的使用,SAE引擎的开发基本和普通环境下的开发没有区别,大家看看示例代码,再看看SAE引擎开发文档,都能掌握SAE引擎的开发。相对于普通ThinkPHP,SAE引擎也增加了一些东西,下面说一下SAE引擎增加的东西。,1,SAE引擎的配置。2,SAE引擎新增函数。3,SAE专属文件。4,短信服务预警。5,备用数据库6,SAE Runtime模式。7,增加的Trace信息。8,保持代码横跨性建议,2023/6/25,3.1 SAE引擎的配置,为什么程序上传到SAE后不用特意设置数据库配置?SAE引擎运行时拥有自己的惯例配置和专有配置,因此配置文件加载顺序为:惯例配置-项目配置
8、-SAE惯例配置-SAE专有配置 SAE惯例配置:位于 引擎目录/Sae/Conf/convention_sae.php,其中定义了程序在SAE上运行时固定的数据库连接配置项。SAE专有配置:位于项目的Conf目录下,文件名为config_sae.php,大家可以将针对SAE的配置写到其中。,2023/6/25,3.2 SAE的专属文件,import(.ORG.UploadFile);在本地加载什么文件?在SAE上加载什么文件?1,系统专属文件。惯例配置 SAE_SPECIALIZED_FILES。2,类库专属文件。在类库的同级目录,建立 Name_sae.class.php 文件。impor
9、t(.ORG.Name);注:导入自己的类库文件时,用import导入才会生效。,2023/6/25,3.2 SAE引擎新增函数,sae_storage_root($domain);获得storage的domain的根地址,一般在config_sae.php 文件中使用,用于定义模板替换变量。sae_unlink($filePath);删除文件时用sae_unlink,而不是使用unlink。文件地址的一个目录是SAE上会作为domain的名称。send_sms($mobile,$msg);发送短信函数。此函数,在非SAE环境也可以用,只需要配置SAE的AKEY和SKEY即可。,2023/6/
10、25,3.4 短信预警,配置项:SMS_ALERT_ON=false,/短信预警开关 SMS_ALERT_MOBILE=,/接收短信的手机号 SMS_ALERT_LEVEL=ERR,MYSQL_ERROR,/还可以设置NOTIC SMS_ALERT_INTERVAL=15,/发送短信的间隔频率 SMS_ALERT_SIGN=,/网站签名标识日志状态:not send 正常情况的未发送failed 发送失败。success 成功发送,2023/6/25,3.5 备用数据库,配置项:SPARE_DB_HOST、SPARE_DB_NAME、SPARE_DB_USER、SPARE_DB_PWD、SPA
11、RE_DB_PORT、SPARE_INFO_FUNCTION SPARE_DB_DEBUG、SPARE_DB_WRITEABLE注意:SAE上要对mysql进行跨库授权。http:/,2023/6/25,3.6 SAE Runtime模式,SAE引擎的编译缓存都是用的Memcache,每次请求必然会用到Memcache服务,有用户感觉SAE引擎的主要都是Memcache在消耗云豆(其实不会太多)。为了降低Memcache云豆的消耗,可以启动SAE Runtime模式。将本地编译缓存上传到SAE上。用法:1,入口文件定义常量 define(SAE_RUNTIME,true);2,在本地命令行中执
12、行入口文件。php index.php,此时会生成sae_runtime.php 文件。,2023/6/25,3.7 增加的Trace信息,大家可以根据trace信息 获得模版缓存,核心缓存,静态缓存。,2023/6/25,3.8 保持代码横跨性建议,尽量保持代码的横跨性,让一样的代码,即能在本地运行,也能在SAE上面运行,上传到SAE不用修改代码。保持代码横跨性的手段有:1,利用IS_SAE常量。2,利用SAE专属配置。3,利用SAE专属文件,2023/6/25,谢谢大家,Q&A,新浪微博:,2012 ThinkPHP开发者沙龙,休息一下,2012 ThinkPHP开发者沙龙,新版Think
13、PHP的特性,主讲人:杨树海,新版ThinkPHP的特性,杨树海,杨树海vus520eoe R&D Team最大的Android技术社区,31,为什么选择ThinkPHP,框架选择简单,文档齐全,社区响应快历史原因旧版和新版需要同时迭代,数据兼容团队原因一群Java、Ruby、PHP、Python程序员Web、WebService、Cli、Cache小组分离独立开发,轻松耦合,32,新版ThinkPHP的特性,3.0CBD(核心+行为+驱动)架构模式MongoDbRESTFulSAE引擎支持更加丰富的扩展和驱动,Mc、Redis变量安全过滤调试、路由、ORM、模板引擎增强查询缓存支持,33,新
14、版ThinkPHP的特性,3.1更加安全的防护和过滤体系MVC多层支持Action参数绑定页面Trace机制改进和分类显示支持模型命名范围支持模板继承独立分组功能,34,新版ThinkPHP的特性,独立分组功能模板继承查询缓存命名范围,35,独立分组功能,ThinkPHP|-Common|-Conf|-Lib|-Action|-Model|-ORG|-Tpl|-Public|-Runtime|-index.php|-favicon.ico-robots.txt,ThinkPHP|-Common|-Conf|-Lib|-Action|-Model|-ORG|-Tpl|-Public|-Runti
15、me|-index.php|-favicon.ico-robots.txt,ThinkPHP|-Common|-Conf|-Lib|-Action|-Model|-ORG|-Tpl|-Public|-Runtime|-index.php|-favicon.ico-robots.txt,A,B,C,37,ThinkPHP|-Data|-Config|-Runtime|-Session|-Static|-Source|-Common|-Conf|-Lang|-Lib|-Modules|-Www|-Wap|-Iphone|-Android|-Member|-.|-Passport|-api|-uc.
16、php|-index.php-uc_client,公共类库,独立项目,框架,38,39,独立分组,项目独立完全,可使用、继承基类库ActionModelConfCommonTplLang,40,|-Action RegAction|-Model UserModel,User,|-Action BlogAction|-Model BlogModel,|-Action WapAction,跨项目调用A(User:/Reg)-validate();A(Blog:/Blog)-AddNew();D(Blog:/Blog)-delete();R(Wap:/Reg/getUserAgent);,Blog,
17、Wap,41,模板继承,42,标题 菜单 左边分栏 主内容 右边分栏 底部,base.html,43,这里是注释,不会被执行我是新内容,show.html,44,标题 菜单 左边分栏 我是新内容 右边分栏 底部,渲染结果,模板继承语法,查询缓存,47,$user=someone;$cache=S(USER_INFO);if(empty($cache)$cache=M(User)-find($user);S(USER_INFO,$cache,3600);,常见逻辑,48,$user=username;$cache=M(User)-cache(USER_INFO,3600)-find($user)
18、;,使用查询缓存,cache(缓存键名,过期时间,缓存方式),49,$Model-cache(true)-select();$Model-cache(true,60,xcache)-select();$Model-cache(cache_name,60)-select();$List=S(cache_name);,使用技巧,50,命名范围,51,$list=$model-field($field)-where(status=0)-limit(10)-cache(USER_INFO,3600)-order(id desc)-group(user_id)-select();,常见逻辑,52,$li
19、st=$model-scope(new)-select();,使用命名范围,53,class NewsModel extends Model protected$_scope=array(new=array(where=array(status=1),order=create_time DESC,cache=array(key=NEWS_CACHE),),new100=array(limit=100,),);,NewsModel.class.php,$lists=$model-scope(new)-select();,54,支持的属性,55,$Model-scope(new,new100)-select();$Model-scope(normal)-limit(8)-order(iddesc)-select();,使用技巧,56,独立分组功能70%模板继承90%查询缓存95%命名范围95%,57,3Q,杨树海,2012 ThinkPHP开发者沙龙,沙龙研讨 互动问答,2012 ThinkPHP开发者沙龙,幸运抽奖祝您好运!,2012 ThinkPHP开发者沙龙,明年再见!,感谢您参加本次ThinkPHP开发者沙龙,明年会有更多的沙龙活动,敬候您的参与.,
链接地址:https://www.31ppt.com/p-5316625.html