SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Sina App Engine Quick Guide

         T.SINA.COM.CN/EASY

         2009.11,2010.1 updated
提要

•   SAE First Look
•   SAE Service
•   A Simple Demo
•   Questions
SAE First Look

• Web应用开发和运行平台
SAE First Look

• Video

• http://xhprof.tools.sinaapp.com/demo/
SAE Service

•   数据存储
•   图像处理
•   Mysql数据库
•   Memcache
•   fetch_url
数据存储

• SaeStorage class

•   // 初始化
•   $s = new SaeStorage;
•   // 写入数据
•   $s->write( $domain , $filename , $content );
•   // 读取数据
•   $s->read( $domain , $filename );
•   // 获取url
•   $s->getUrl( $domain , $filename );
图像处理

• SaeImage class

•   // 初始化
•   $img = new SaeImage($img_bin_data);
•   // 缩放
•   $img->resize( $width , $height );
•   // 旋转
•   $img->rotate( 90 );
•   // 执行以上操作并输出
•   $img_data_png = $img->exec(„jpg‟);
Mysql

• SaeMysql class

•   // 初始化
•   $mysql= new SaeMysql();
•   // 运行sql
•   $mysql->runSql( $sql );
•   // 查询数据
•   $data_array = $mysql->getData( $sql );
•   // 错误捕捉
•   If( $mysql->errno() != 0 ) die( “Mysql error” . $mysql->error()
    );
Memcache

• Sae_memcache

•   // 初始化
•   $mc = sae_memcache_init();
•   // 存数据
•   $mc->set ( $set , $get );
•   // 取数据
•   $mc->get( $key );
Fetch_url

• $f = new SaeFetchurl();

• $content = $f->fetch( „http://sina.cn‟ );
• if( !$content ) echo $f->errmsg();
A Simple Demo : Let‟s try it

• 需求:图片收藏夹
• 描述:用户提交图片链接后,将图片保存,并以缩图方式
  列表
Simple Demo

<?php
// 初始化并保存各服务需要的数据
define( 'ST_DOMAIN' , „' );

?>
Simple Demo

• 创建表单

•   <form action=“index.php” method=“post” >
•   <input type=“text” name=“pic_url” /><br/>
•   <input type=“submit” value=“save”>
•   </form>
Simple Demo

• 抓取文件

• $f = new SaeFetchurl();
• if( !$img_data = $f->fetch($_REQUEST['pic_url']))
• die( 'can't get contents of ' . $_REQUEST['pic_url'] .
  ' error : ' . $f->errmsg() );
Simple Demo

• 图片处理:缩图和格式转换

•   $img = new SaeImage( $img_data );
•   $img_data = $img->exec('jpg');
•   $img->resize( 100 );
•   $small_data = $img->exec('jpg');
Simple Demo

• 保存图片到存储

• $name = time() ;
• $s = SaeStorage();
• if( !$s->write( ST_DOMAIN , 'photo_' . $name . '.jpg' ,
  $img_data ) )
• die( 'save img data error' );
• else
• $url = $s->getUrl( ST_DOMAIN , 'photo_' . $name . '.jpg'
  );
• // 缩图同样处理
Simple Demo

• 向Mysql中添加记录

• $sql = "INSERT INTO `pic` ( `url` , `small_url` , `timeline`
  ) VALUES ( '" . $mysql->escape( $url ) . "' , '" . $mysql-
  >escape( $small_url ) . "' , NOW() )";
• $mysql->runSql( $sql );
• if( $mysql->errno() != 0 )
• die( 'Mysql error ' . $mysql->error() );
• echo '<div style="color:red;padding:5px">数据成功保存
  </div>';
Simple Demo

• 添加展示页面

• $sql = "SELECT * FROM `pic` ORDER BY `id`
  DESC LIMIT 10";
• $data = $mysql->getData( $sql );?>

• <?php foreach( $data as $line ): ?>
• <div ><a href="<?php echo $line['url'] ?>"
  target="new"><img src="<?php echo
  $line['small_url'] ?>"></a></div>
• <?php endforeach; ?>
Simple Demo

• All in one
• http://apidemo.sinaapp.com/code.txt
Simple Demo

• Visit it
• http://apidemo.sinaapp.com/
Find more fun?

• 文档中心 - wiki.sae.sina.com.cn
• 邮件列表 - lists.sae.sina.com.cn
Questions?

Weitere ähnliche Inhalte

Was ist angesagt?

advanced introduction to codeigniter
advanced introduction to codeigniteradvanced introduction to codeigniter
advanced introduction to codeigniterBo-Yi Wu
 
Web设计 4 锋利的j_query(进入企业级应用阶段)
Web设计 4 锋利的j_query(进入企业级应用阶段)Web设计 4 锋利的j_query(进入企业级应用阶段)
Web设计 4 锋利的j_query(进入企业级应用阶段)ziggear
 
第十期 阿甘Javascript开发思想(入门篇)
第十期 阿甘Javascript开发思想(入门篇)第十期 阿甘Javascript开发思想(入门篇)
第十期 阿甘Javascript开发思想(入门篇)9scss
 
Model & Seeding整合
Model & Seeding整合Model & Seeding整合
Model & Seeding整合Shengyou Fan
 
一拍一产品背后的故事(React实战)
一拍一产品背后的故事(React实战)一拍一产品背后的故事(React实战)
一拍一产品背后的故事(React实战)Kejun Zhang
 
Web Caching Architecture and Design
Web Caching Architecture and DesignWeb Caching Architecture and Design
Web Caching Architecture and DesignHo Kim
 
Backbone js and requirejs
Backbone js and requirejsBackbone js and requirejs
Backbone js and requirejsChi-wen Sun
 
Migrations 與 Schema 操作
Migrations 與 Schema 操作Migrations 與 Schema 操作
Migrations 與 Schema 操作Shengyou Fan
 
Node.js with express
Node.js with expressNode.js with express
Node.js with expressjavakidxxx
 
Patterns in Zend Framework
Patterns in Zend FrameworkPatterns in Zend Framework
Patterns in Zend FrameworkJace Ju
 
Node getting-started
Node getting-startedNode getting-started
Node getting-startedlylijincheng
 
KISSY Mechanism
KISSY MechanismKISSY Mechanism
KISSY Mechanismlifesinger
 
Mongodb
MongodbMongodb
Mongodbbj
 
Template mb-kao
Template mb-kaoTemplate mb-kao
Template mb-kaoxwcoder
 
使用kslite支持第三方内容开发
使用kslite支持第三方内容开发使用kslite支持第三方内容开发
使用kslite支持第三方内容开发leneli
 
常見設計模式介紹
常見設計模式介紹常見設計模式介紹
常見設計模式介紹Jace Ju
 

Was ist angesagt? (20)

advanced introduction to codeigniter
advanced introduction to codeigniteradvanced introduction to codeigniter
advanced introduction to codeigniter
 
Web设计 4 锋利的j_query(进入企业级应用阶段)
Web设计 4 锋利的j_query(进入企业级应用阶段)Web设计 4 锋利的j_query(进入企业级应用阶段)
Web设计 4 锋利的j_query(进入企业级应用阶段)
 
第十期 阿甘Javascript开发思想(入门篇)
第十期 阿甘Javascript开发思想(入门篇)第十期 阿甘Javascript开发思想(入门篇)
第十期 阿甘Javascript开发思想(入门篇)
 
Model & Seeding整合
Model & Seeding整合Model & Seeding整合
Model & Seeding整合
 
CRUD 綜合應用
CRUD 綜合應用CRUD 綜合應用
CRUD 綜合應用
 
一拍一产品背后的故事(React实战)
一拍一产品背后的故事(React实战)一拍一产品背后的故事(React实战)
一拍一产品背后的故事(React实战)
 
Web Caching Architecture and Design
Web Caching Architecture and DesignWeb Caching Architecture and Design
Web Caching Architecture and Design
 
Backbone js and requirejs
Backbone js and requirejsBackbone js and requirejs
Backbone js and requirejs
 
Migrations 與 Schema 操作
Migrations 與 Schema 操作Migrations 與 Schema 操作
Migrations 與 Schema 操作
 
CRUD 綜合運用
CRUD 綜合運用CRUD 綜合運用
CRUD 綜合運用
 
Node.js with express
Node.js with expressNode.js with express
Node.js with express
 
Patterns in Zend Framework
Patterns in Zend FrameworkPatterns in Zend Framework
Patterns in Zend Framework
 
Node getting-started
Node getting-startedNode getting-started
Node getting-started
 
KISSY Mechanism
KISSY MechanismKISSY Mechanism
KISSY Mechanism
 
Mongodb
MongodbMongodb
Mongodb
 
Template mb-kao
Template mb-kaoTemplate mb-kao
Template mb-kao
 
使用kslite支持第三方内容开发
使用kslite支持第三方内容开发使用kslite支持第三方内容开发
使用kslite支持第三方内容开发
 
常見設計模式介紹
常見設計模式介紹常見設計模式介紹
常見設計模式介紹
 
工作坊總結
工作坊總結工作坊總結
工作坊總結
 
Eloquent ORM
Eloquent ORMEloquent ORM
Eloquent ORM
 

Andere mochten auch

Individuality and Choice
Individuality and ChoiceIndividuality and Choice
Individuality and Choicelnpincus
 
Infeccion Urinaria
Infeccion UrinariaInfeccion Urinaria
Infeccion UrinariaJJ276
 
【鉄道・運輸機構】平成21年環境報告書
【鉄道・運輸機構】平成21年環境報告書【鉄道・運輸機構】平成21年環境報告書
【鉄道・運輸機構】平成21年環境報告書env17
 
【鉄道・運輸機構】平成20年環境報告書
【鉄道・運輸機構】平成20年環境報告書【鉄道・運輸機構】平成20年環境報告書
【鉄道・運輸機構】平成20年環境報告書env17
 
Presentation2
Presentation2Presentation2
Presentation2lnpincus
 
【鉄道・運輸機構】平成19年環境報告書
【鉄道・運輸機構】平成19年環境報告書【鉄道・運輸機構】平成19年環境報告書
【鉄道・運輸機構】平成19年環境報告書env17
 
【鉄道・運輸機構】平成18年環境報告書
【鉄道・運輸機構】平成18年環境報告書【鉄道・運輸機構】平成18年環境報告書
【鉄道・運輸機構】平成18年環境報告書env17
 

Andere mochten auch (7)

Individuality and Choice
Individuality and ChoiceIndividuality and Choice
Individuality and Choice
 
Infeccion Urinaria
Infeccion UrinariaInfeccion Urinaria
Infeccion Urinaria
 
【鉄道・運輸機構】平成21年環境報告書
【鉄道・運輸機構】平成21年環境報告書【鉄道・運輸機構】平成21年環境報告書
【鉄道・運輸機構】平成21年環境報告書
 
【鉄道・運輸機構】平成20年環境報告書
【鉄道・運輸機構】平成20年環境報告書【鉄道・運輸機構】平成20年環境報告書
【鉄道・運輸機構】平成20年環境報告書
 
Presentation2
Presentation2Presentation2
Presentation2
 
【鉄道・運輸機構】平成19年環境報告書
【鉄道・運輸機構】平成19年環境報告書【鉄道・運輸機構】平成19年環境報告書
【鉄道・運輸機構】平成19年環境報告書
 
【鉄道・運輸機構】平成18年環境報告書
【鉄道・運輸機構】平成18年環境報告書【鉄道・運輸機構】平成18年環境報告書
【鉄道・運輸機構】平成18年環境報告書
 

Ähnlich wie Sina App Quick Guide 1

Html5和css3入门
Html5和css3入门Html5和css3入门
Html5和css3入门Xiujun Ma
 
Php study.20130110
Php study.20130110Php study.20130110
Php study.20130110bngoogle
 
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練3
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練32016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練3
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練3Duran Hsieh
 
浅析浏览器解析和渲染
浅析浏览器解析和渲染浅析浏览器解析和渲染
浅析浏览器解析和渲染Ailsa126
 
04.uliweb更多话题介绍
04.uliweb更多话题介绍04.uliweb更多话题介绍
04.uliweb更多话题介绍modou li
 
Introduction to CodeIgniter
Introduction to CodeIgniterIntroduction to CodeIgniter
Introduction to CodeIgniterChun-Kai Wang
 
OpenWebSchool - 06 - PHP + MySQL
OpenWebSchool - 06 - PHP + MySQLOpenWebSchool - 06 - PHP + MySQL
OpenWebSchool - 06 - PHP + MySQLHung-yu Lin
 
模块加载策略 - 2012 SDCC, 北京
模块加载策略 - 2012 SDCC, 北京模块加载策略 - 2012 SDCC, 北京
模块加载策略 - 2012 SDCC, 北京Joseph Chiang
 
View 與 Blade 樣板引擎
View 與 Blade 樣板引擎View 與 Blade 樣板引擎
View 與 Blade 樣板引擎Shengyou Fan
 
Simple kissy1.3
Simple kissy1.3Simple kissy1.3
Simple kissy1.3yiming he
 
Backbone.js and MVW 101
Backbone.js and MVW 101Backbone.js and MVW 101
Backbone.js and MVW 101Jollen Chen
 
MySQL快速入门与提高
MySQL快速入门与提高MySQL快速入门与提高
MySQL快速入门与提高mysqlpub
 
Zencart网站模板复制过程
Zencart网站模板复制过程Zencart网站模板复制过程
Zencart网站模板复制过程xiaochenlbm
 
HTML5概览
HTML5概览HTML5概览
HTML5概览Adam Lu
 
Gulp.js 自動化前端任務流程
Gulp.js 自動化前端任務流程Gulp.js 自動化前端任務流程
Gulp.js 自動化前端任務流程洧杰 廖
 
第三方内容开发最佳实践
第三方内容开发最佳实践第三方内容开发最佳实践
第三方内容开发最佳实践taobao.com
 
Script with engine
Script with engineScript with engine
Script with engineWebrebuild
 
進擊的前端工程師:今天就用 JSON Server 自己打造 API 吧!
進擊的前端工程師:今天就用 JSON Server 自己打造 API 吧!進擊的前端工程師:今天就用 JSON Server 自己打造 API 吧!
進擊的前端工程師:今天就用 JSON Server 自己打造 API 吧!Will Huang
 

Ähnlich wie Sina App Quick Guide 1 (20)

Html5和css3入门
Html5和css3入门Html5和css3入门
Html5和css3入门
 
Php study.20130110
Php study.20130110Php study.20130110
Php study.20130110
 
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練3
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練32016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練3
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練3
 
浅析浏览器解析和渲染
浅析浏览器解析和渲染浅析浏览器解析和渲染
浅析浏览器解析和渲染
 
04.uliweb更多话题介绍
04.uliweb更多话题介绍04.uliweb更多话题介绍
04.uliweb更多话题介绍
 
Mvc
MvcMvc
Mvc
 
Introduction to CodeIgniter
Introduction to CodeIgniterIntroduction to CodeIgniter
Introduction to CodeIgniter
 
OpenWebSchool - 06 - PHP + MySQL
OpenWebSchool - 06 - PHP + MySQLOpenWebSchool - 06 - PHP + MySQL
OpenWebSchool - 06 - PHP + MySQL
 
模块加载策略 - 2012 SDCC, 北京
模块加载策略 - 2012 SDCC, 北京模块加载策略 - 2012 SDCC, 北京
模块加载策略 - 2012 SDCC, 北京
 
View 與 Blade 樣板引擎
View 與 Blade 樣板引擎View 與 Blade 樣板引擎
View 與 Blade 樣板引擎
 
Simple kissy1.3
Simple kissy1.3Simple kissy1.3
Simple kissy1.3
 
Backbone.js and MVW 101
Backbone.js and MVW 101Backbone.js and MVW 101
Backbone.js and MVW 101
 
MySQL快速入门与提高
MySQL快速入门与提高MySQL快速入门与提高
MySQL快速入门与提高
 
Zencart网站模板复制过程
Zencart网站模板复制过程Zencart网站模板复制过程
Zencart网站模板复制过程
 
CRUD 綜合運用
CRUD 綜合運用CRUD 綜合運用
CRUD 綜合運用
 
HTML5概览
HTML5概览HTML5概览
HTML5概览
 
Gulp.js 自動化前端任務流程
Gulp.js 自動化前端任務流程Gulp.js 自動化前端任務流程
Gulp.js 自動化前端任務流程
 
第三方内容开发最佳实践
第三方内容开发最佳实践第三方内容开发最佳实践
第三方内容开发最佳实践
 
Script with engine
Script with engineScript with engine
Script with engine
 
進擊的前端工程師:今天就用 JSON Server 自己打造 API 吧!
進擊的前端工程師:今天就用 JSON Server 自己打造 API 吧!進擊的前端工程師:今天就用 JSON Server 自己打造 API 吧!
進擊的前端工程師:今天就用 JSON Server 自己打造 API 吧!
 

Sina App Quick Guide 1

  • 1. Sina App Engine Quick Guide T.SINA.COM.CN/EASY 2009.11,2010.1 updated
  • 2. 提要 • SAE First Look • SAE Service • A Simple Demo • Questions
  • 3. SAE First Look • Web应用开发和运行平台
  • 4. SAE First Look • Video • http://xhprof.tools.sinaapp.com/demo/
  • 5. SAE Service • 数据存储 • 图像处理 • Mysql数据库 • Memcache • fetch_url
  • 6. 数据存储 • SaeStorage class • // 初始化 • $s = new SaeStorage; • // 写入数据 • $s->write( $domain , $filename , $content ); • // 读取数据 • $s->read( $domain , $filename ); • // 获取url • $s->getUrl( $domain , $filename );
  • 7. 图像处理 • SaeImage class • // 初始化 • $img = new SaeImage($img_bin_data); • // 缩放 • $img->resize( $width , $height ); • // 旋转 • $img->rotate( 90 ); • // 执行以上操作并输出 • $img_data_png = $img->exec(„jpg‟);
  • 8. Mysql • SaeMysql class • // 初始化 • $mysql= new SaeMysql(); • // 运行sql • $mysql->runSql( $sql ); • // 查询数据 • $data_array = $mysql->getData( $sql ); • // 错误捕捉 • If( $mysql->errno() != 0 ) die( “Mysql error” . $mysql->error() );
  • 9. Memcache • Sae_memcache • // 初始化 • $mc = sae_memcache_init(); • // 存数据 • $mc->set ( $set , $get ); • // 取数据 • $mc->get( $key );
  • 10. Fetch_url • $f = new SaeFetchurl(); • $content = $f->fetch( „http://sina.cn‟ ); • if( !$content ) echo $f->errmsg();
  • 11. A Simple Demo : Let‟s try it • 需求:图片收藏夹 • 描述:用户提交图片链接后,将图片保存,并以缩图方式 列表
  • 13. Simple Demo • 创建表单 • <form action=“index.php” method=“post” > • <input type=“text” name=“pic_url” /><br/> • <input type=“submit” value=“save”> • </form>
  • 14. Simple Demo • 抓取文件 • $f = new SaeFetchurl(); • if( !$img_data = $f->fetch($_REQUEST['pic_url'])) • die( 'can't get contents of ' . $_REQUEST['pic_url'] . ' error : ' . $f->errmsg() );
  • 15. Simple Demo • 图片处理:缩图和格式转换 • $img = new SaeImage( $img_data ); • $img_data = $img->exec('jpg'); • $img->resize( 100 ); • $small_data = $img->exec('jpg');
  • 16. Simple Demo • 保存图片到存储 • $name = time() ; • $s = SaeStorage(); • if( !$s->write( ST_DOMAIN , 'photo_' . $name . '.jpg' , $img_data ) ) • die( 'save img data error' ); • else • $url = $s->getUrl( ST_DOMAIN , 'photo_' . $name . '.jpg' ); • // 缩图同样处理
  • 17. Simple Demo • 向Mysql中添加记录 • $sql = "INSERT INTO `pic` ( `url` , `small_url` , `timeline` ) VALUES ( '" . $mysql->escape( $url ) . "' , '" . $mysql- >escape( $small_url ) . "' , NOW() )"; • $mysql->runSql( $sql ); • if( $mysql->errno() != 0 ) • die( 'Mysql error ' . $mysql->error() ); • echo '<div style="color:red;padding:5px">数据成功保存 </div>';
  • 18. Simple Demo • 添加展示页面 • $sql = "SELECT * FROM `pic` ORDER BY `id` DESC LIMIT 10"; • $data = $mysql->getData( $sql );?> • <?php foreach( $data as $line ): ?> • <div ><a href="<?php echo $line['url'] ?>" target="new"><img src="<?php echo $line['small_url'] ?>"></a></div> • <?php endforeach; ?>
  • 19. Simple Demo • All in one • http://apidemo.sinaapp.com/code.txt
  • 20. Simple Demo • Visit it • http://apidemo.sinaapp.com/
  • 21. Find more fun? • 文档中心 - wiki.sae.sina.com.cn • 邮件列表 - lists.sae.sina.com.cn