SlideShare una empresa de Scribd logo
1 de 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?

Más contenido relacionado

La actualidad más candente

Web设计 4 锋利的j_query(进入企业级应用阶段)
Web设计 4 锋利的j_query(进入企业级应用阶段)Web设计 4 锋利的j_query(进入企业级应用阶段)
Web设计 4 锋利的j_query(进入企业级应用阶段)
ziggear
 
第十期 阿甘Javascript开发思想(入门篇)
第十期 阿甘Javascript开发思想(入门篇)第十期 阿甘Javascript开发思想(入门篇)
第十期 阿甘Javascript开发思想(入门篇)
9scss
 
Patterns in Zend Framework
Patterns in Zend FrameworkPatterns in Zend Framework
Patterns in Zend Framework
Jace Ju
 
Node getting-started
Node getting-startedNode getting-started
Node getting-started
lylijincheng
 
Mongodb
MongodbMongodb
Mongodb
bj
 
Template mb-kao
Template mb-kaoTemplate mb-kao
Template mb-kao
xwcoder
 
使用kslite支持第三方内容开发
使用kslite支持第三方内容开发使用kslite支持第三方内容开发
使用kslite支持第三方内容开发
leneli
 

La actualidad más candente (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
 

Destacado

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

Destacado (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年環境報告書
 

Similar a Sina App Quick Guide 1

浅析浏览器解析和渲染
浅析浏览器解析和渲染浅析浏览器解析和渲染
浅析浏览器解析和渲染
Ailsa126
 
Introduction to CodeIgniter
Introduction to CodeIgniterIntroduction to CodeIgniter
Introduction to CodeIgniter
Chun-Kai Wang
 
OpenWebSchool - 06 - PHP + MySQL
OpenWebSchool - 06 - PHP + MySQLOpenWebSchool - 06 - PHP + MySQL
OpenWebSchool - 06 - PHP + MySQL
Hung-yu Lin
 
Simple kissy1.3
Simple kissy1.3Simple kissy1.3
Simple kissy1.3
yiming he
 
Zencart网站模板复制过程
Zencart网站模板复制过程Zencart网站模板复制过程
Zencart网站模板复制过程
xiaochenlbm
 
HTML5概览
HTML5概览HTML5概览
HTML5概览
Adam Lu
 
第三方内容开发最佳实践
第三方内容开发最佳实践第三方内容开发最佳实践
第三方内容开发最佳实践
taobao.com
 
Script with engine
Script with engineScript with engine
Script with engine
Webrebuild
 

Similar a 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