SlideShare a Scribd company logo
1 of 34
Download to read offline
Demo   Review
                       Part-1
                         仙羽




12年3月19日星期一
PHP

   起始符和结束符:<?php ?>




    文件末尾的?>结束符不是必须的

    不要使用short_tag <? ?> <?=$val;?>

    __是demo-dev-lib中定义的快捷输出函数
12年3月19日星期一
PHP

   变量和作用域:数据类型




12年3月19日星期一
PHP

   变量和作用域:类型转换及相关




12年3月19日星期一
PHP

   变量和作用域:预定义变量




12年3月19日星期一
PHP

   变量和作用域:作用域
    函数内部不能引用外部的变量
      预定义变量、常量除外
      使用global声明的变量除外

    函数内可以定义静态变量,其值函数执行后不消失

    文件中定义的变量在include、require的文件中也生效




12年3月19日星期一
PHP

   常量




12年3月19日星期一
PHP

   运算符
    和javascript基本⼀一样
        $a = $a || $b;

    False == ‘’,‘0’,0,0.0,array(), Null

    == 值等于
    === 全等于

    字符串连接 . .=

    数组存取: [下标]



12年3月19日星期一
PHP

   控制结构




12年3月19日星期一
PHP

   函数




12年3月19日星期一
PHP

   类




12年3月19日星期一
PHP

   常用函数




12年3月19日星期一
PHP

   学习资源
    code.google.com/p/phpdoc-zh




12年3月19日星期一
tm-dev-lib

   服务器要求
   1.php5.3+
   2.开启以下拓展:curl、mbstring、mysql、json
   3.将tm-dev-lib路径添加到include_path中




12年3月19日星期一
tm-dev-lib

                                     Assets
                                    静态资源服务

              CategoryModel           DPL
                 类目模型                标准样式库

               ItemModel            phpcommon
                 商品模型                 页头页尾

                 Model                View
 MySQL            模型                  视图
                                                          Input
                           Action         ORG            输入获取
                           控制器           公共类库


                         tmdev.php     Common Function
                                          公共函数库
                          入口文件



12年3月19日星期一
tm-dev-lib

   a.tbcdn.cn
   1.支持combo,其中??为分隔符
   2.如果文件不存在(含combo),则发送404
   3.不寻找未压缩版本
   4.头信息中不包含编码格式,包括文件类型
   5.每个文件都可以有查询串(?部分)




12年3月19日星期一
tm-dev-lib

   tm-dev-lib assets
   1.以a.tbcdn.cn为蓝本
   2.支持less、coffeescript、markdown实时解析
   3.支持指定不同的分支目录
   4.支持文件缓存,当本地文件不存在时,自动从
   指定的服务器获取文件,并能侦测404状态
   5.约定优于配置,没有配置页面(ucool)




12年3月19日星期一
tm-dev-lib
                assets.local.tmall.net
                   开发者本地机器                svn up
                                          svn ci


                                         taobao assets
                                            server



                                         svn up
                                         svn ci
挂载共享目录
                assets.demo.tmall.net



12年3月19日星期一
tm-dev-lib

   assets方法




12年3月19日星期一
tm-dev-lib

   assets note
   1.assets只支持js、css文件(含less、coffee)
   2.getAssetsLink支持任意文件
   3.assets combo服务支持js、css的combo
   4.可以用本地的assets combo代理日常、线上
   assets
   5.建议在本地启用assets服务进行开发,编写完毕
   后再同步到demo服务器
   6.demo服务器上assets方法固定使用
   assets.demo.tmall.net作为assets服务
12年3月19日星期一
tm-dev-lib

   assets 管理
   目前的状态:令人疑惑,容易出错

   scm like + crontab release?




12年3月19日星期一
tm-dev-lib

   文件引入

            dpl        header、bodyHeader、footer
          调用dpl库             调用php页头页尾




              render($file, $data)
                   引入指定文件




12年3月19日星期一
tm-dev-lib

   文件引入 dpl和php页头页尾




   应用优先级高于框架



12年3月19日星期一
tm-dev-lib

   文件引入 数据传递
    1、通过assign($name, $data)向模板赋值
              assign方法可以突破作用域的限制
    2、通过方法的参数传值,建议使用数组的形式




12年3月19日星期一
tm-dev-lib

   跨文件使用变量 突破作用域限制

   在模板内部获取View实例,调用assign方法赋值

   将变量声明为global

   使用C方法




12年3月19日星期一
tm-dev-lib

   引入TMS区块

    importTMS($file)

    目前只适合于引入没有php代码的区块




12年3月19日星期一
tm-dev-lib

   索引机制




 http://demo.tmall.net/
12年3月19日星期一
tm-dev-lib

   索引机制




12年3月19日星期一
tm-dev-lib

   索引机制 如何生成
    svn hook : post-commit
          svn update 更新web目录
          svnlook changed 获取变更列表
          分别处理目录和文件变动,生成sql语句并执行
              遇到@noindex标记:删除索引
              insert into .... on duplicate key update...



12年3月19日星期一
tm-dev-lib

   后续



                解析velocity模板




12年3月19日星期一
tm-dev-lib

   后续


                svn diff、svn log
                 使开发方便地看到更改




12年3月19日星期一
tm-dev-lib

   后续

                数据模型




12年3月19日星期一
tm-dev-lib

   后续

                页面数据抓取




12年3月19日星期一
end
              thank you
12年3月19日星期一

More Related Content

Similar to Demo review

数据访问层开发实践
数据访问层开发实践数据访问层开发实践
数据访问层开发实践xcq
 
Subversion
SubversionSubversion
Subversioni7Xh
 
20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页
20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页
20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页liu sheng
 
开源应用日志收集系统
开源应用日志收集系统开源应用日志收集系统
开源应用日志收集系统klandor
 
啟動 Laravel 與環境設定
啟動 Laravel 與環境設定啟動 Laravel 與環境設定
啟動 Laravel 與環境設定Shengyou Fan
 
六步教你学会简单Rmi
六步教你学会简单Rmi六步教你学会简单Rmi
六步教你学会简单Rmiyiditushe
 
深入理解Andorid重难点
深入理解Andorid重难点深入理解Andorid重难点
深入理解Andorid重难点Bin Shao
 
Beyond rails server
Beyond rails serverBeyond rails server
Beyond rails serverMichael Chen
 
Ruby rails分享
Ruby rails分享Ruby rails分享
Ruby rails分享Cam Song
 
一个“兼职Dba”的数据库运维经验谈
一个“兼职Dba”的数据库运维经验谈一个“兼职Dba”的数据库运维经验谈
一个“兼职Dba”的数据库运维经验谈Liang Xie
 
C++工程实践
C++工程实践C++工程实践
C++工程实践Shuo Chen
 
Docker tutorial
Docker tutorialDocker tutorial
Docker tutorialazole Lai
 
Google protocol buffers简析
Google protocol buffers简析Google protocol buffers简析
Google protocol buffers简析wavefly
 
Phpconf 2011 introduction_to_codeigniter
Phpconf 2011 introduction_to_codeigniterPhpconf 2011 introduction_to_codeigniter
Phpconf 2011 introduction_to_codeigniterBo-Yi Wu
 
Lotus domino开发教程
Lotus domino开发教程Lotus domino开发教程
Lotus domino开发教程dyzm_2000
 
腾讯大讲堂24 qq show2.0重构历程
腾讯大讲堂24 qq show2.0重构历程腾讯大讲堂24 qq show2.0重构历程
腾讯大讲堂24 qq show2.0重构历程areyouok
 
腾讯大讲堂24 qq show2.0重构历程
腾讯大讲堂24 qq show2.0重构历程腾讯大讲堂24 qq show2.0重构历程
腾讯大讲堂24 qq show2.0重构历程topgeek
 
Zh tw introduction_to_hadoop and hdfs
Zh tw introduction_to_hadoop and hdfsZh tw introduction_to_hadoop and hdfs
Zh tw introduction_to_hadoop and hdfsTrendProgContest13
 

Similar to Demo review (20)

数据访问层开发实践
数据访问层开发实践数据访问层开发实践
数据访问层开发实践
 
Subversion
SubversionSubversion
Subversion
 
20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页
20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页
20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页
 
开源应用日志收集系统
开源应用日志收集系统开源应用日志收集系统
开源应用日志收集系统
 
啟動 Laravel 與環境設定
啟動 Laravel 與環境設定啟動 Laravel 與環境設定
啟動 Laravel 與環境設定
 
六步教你学会简单Rmi
六步教你学会简单Rmi六步教你学会简单Rmi
六步教你学会简单Rmi
 
深入理解Andorid重难点
深入理解Andorid重难点深入理解Andorid重难点
深入理解Andorid重难点
 
Beyond rails server
Beyond rails serverBeyond rails server
Beyond rails server
 
Ruby rails分享
Ruby rails分享Ruby rails分享
Ruby rails分享
 
Les 3 ppt
Les 3 pptLes 3 ppt
Les 3 ppt
 
rebar erlang
rebar erlangrebar erlang
rebar erlang
 
一个“兼职Dba”的数据库运维经验谈
一个“兼职Dba”的数据库运维经验谈一个“兼职Dba”的数据库运维经验谈
一个“兼职Dba”的数据库运维经验谈
 
C++工程实践
C++工程实践C++工程实践
C++工程实践
 
Docker tutorial
Docker tutorialDocker tutorial
Docker tutorial
 
Google protocol buffers简析
Google protocol buffers简析Google protocol buffers简析
Google protocol buffers简析
 
Phpconf 2011 introduction_to_codeigniter
Phpconf 2011 introduction_to_codeigniterPhpconf 2011 introduction_to_codeigniter
Phpconf 2011 introduction_to_codeigniter
 
Lotus domino开发教程
Lotus domino开发教程Lotus domino开发教程
Lotus domino开发教程
 
腾讯大讲堂24 qq show2.0重构历程
腾讯大讲堂24 qq show2.0重构历程腾讯大讲堂24 qq show2.0重构历程
腾讯大讲堂24 qq show2.0重构历程
 
腾讯大讲堂24 qq show2.0重构历程
腾讯大讲堂24 qq show2.0重构历程腾讯大讲堂24 qq show2.0重构历程
腾讯大讲堂24 qq show2.0重构历程
 
Zh tw introduction_to_hadoop and hdfs
Zh tw introduction_to_hadoop and hdfsZh tw introduction_to_hadoop and hdfs
Zh tw introduction_to_hadoop and hdfs
 

More from tbmallf2e

Node getting start
Node getting startNode getting start
Node getting starttbmallf2e
 
猫粮快报
猫粮快报猫粮快报
猫粮快报tbmallf2e
 
618风林火山(仙快羽)
618风林火山(仙快羽)618风林火山(仙快羽)
618风林火山(仙快羽)tbmallf2e
 
新风尚活动分享
新风尚活动分享新风尚活动分享
新风尚活动分享tbmallf2e
 
前端性能优化&测试
前端性能优化&测试前端性能优化&测试
前端性能优化&测试tbmallf2e
 
前端性能测试
前端性能测试前端性能测试
前端性能测试tbmallf2e
 
猫粮快报 金艳艳
猫粮快报 金艳艳猫粮快报 金艳艳
猫粮快报 金艳艳tbmallf2e
 
浅谈前端安全与规范(渔隐)
浅谈前端安全与规范(渔隐)浅谈前端安全与规范(渔隐)
浅谈前端安全与规范(渔隐)tbmallf2e
 
猫粮快报
猫粮快报猫粮快报
猫粮快报tbmallf2e
 
番茄工作法
番茄工作法番茄工作法
番茄工作法tbmallf2e
 
Tm快报201202 daqiu
Tm快报201202 daqiuTm快报201202 daqiu
Tm快报201202 daqiutbmallf2e
 
快速开发Css
快速开发Css快速开发Css
快速开发Csstbmallf2e
 
Google Chrome Developer Tools
Google Chrome Developer ToolsGoogle Chrome Developer Tools
Google Chrome Developer Toolstbmallf2e
 
Hello Html5 Games
Hello Html5 GamesHello Html5 Games
Hello Html5 Gamestbmallf2e
 
Velocity beijing 2011 xianyu
Velocity beijing 2011   xianyuVelocity beijing 2011   xianyu
Velocity beijing 2011 xianyutbmallf2e
 
Chrome中的创意和应用
Chrome中的创意和应用Chrome中的创意和应用
Chrome中的创意和应用tbmallf2e
 
高端版Tmall
高端版Tmall高端版Tmall
高端版Tmalltbmallf2e
 

More from tbmallf2e (20)

Node getting start
Node getting startNode getting start
Node getting start
 
猫粮快报
猫粮快报猫粮快报
猫粮快报
 
618风林火山(仙快羽)
618风林火山(仙快羽)618风林火山(仙快羽)
618风林火山(仙快羽)
 
新风尚活动分享
新风尚活动分享新风尚活动分享
新风尚活动分享
 
前端性能优化&测试
前端性能优化&测试前端性能优化&测试
前端性能优化&测试
 
前端性能测试
前端性能测试前端性能测试
前端性能测试
 
猫粮快报 金艳艳
猫粮快报 金艳艳猫粮快报 金艳艳
猫粮快报 金艳艳
 
浅谈前端安全与规范(渔隐)
浅谈前端安全与规范(渔隐)浅谈前端安全与规范(渔隐)
浅谈前端安全与规范(渔隐)
 
猫粮快报
猫粮快报猫粮快报
猫粮快报
 
番茄工作法
番茄工作法番茄工作法
番茄工作法
 
呜龙
呜龙呜龙
呜龙
 
Tm快报201202 daqiu
Tm快报201202 daqiuTm快报201202 daqiu
Tm快报201202 daqiu
 
快速开发Css
快速开发Css快速开发Css
快速开发Css
 
Google Chrome Developer Tools
Google Chrome Developer ToolsGoogle Chrome Developer Tools
Google Chrome Developer Tools
 
Hello Html5 Games
Hello Html5 GamesHello Html5 Games
Hello Html5 Games
 
Velocity beijing 2011 xianyu
Velocity beijing 2011   xianyuVelocity beijing 2011   xianyu
Velocity beijing 2011 xianyu
 
Mvc
MvcMvc
Mvc
 
Chrome中的创意和应用
Chrome中的创意和应用Chrome中的创意和应用
Chrome中的创意和应用
 
Wap
WapWap
Wap
 
高端版Tmall
高端版Tmall高端版Tmall
高端版Tmall
 

Demo review

  • 1. Demo Review Part-1 仙羽 12年3月19日星期一
  • 2. PHP 起始符和结束符:<?php ?> 文件末尾的?>结束符不是必须的 不要使用short_tag <? ?> <?=$val;?> __是demo-dev-lib中定义的快捷输出函数 12年3月19日星期一
  • 3. PHP 变量和作用域:数据类型 12年3月19日星期一
  • 4. PHP 变量和作用域:类型转换及相关 12年3月19日星期一
  • 5. PHP 变量和作用域:预定义变量 12年3月19日星期一
  • 6. PHP 变量和作用域:作用域 函数内部不能引用外部的变量 预定义变量、常量除外 使用global声明的变量除外 函数内可以定义静态变量,其值函数执行后不消失 文件中定义的变量在include、require的文件中也生效 12年3月19日星期一
  • 7. PHP 常量 12年3月19日星期一
  • 8. PHP 运算符 和javascript基本⼀一样 $a = $a || $b; False == ‘’,‘0’,0,0.0,array(), Null == 值等于 === 全等于 字符串连接 . .= 数组存取: [下标] 12年3月19日星期一
  • 9. PHP 控制结构 12年3月19日星期一
  • 10. PHP 函数 12年3月19日星期一
  • 11. PHP 类 12年3月19日星期一
  • 12. PHP 常用函数 12年3月19日星期一
  • 13. PHP 学习资源 code.google.com/p/phpdoc-zh 12年3月19日星期一
  • 14. tm-dev-lib 服务器要求 1.php5.3+ 2.开启以下拓展:curl、mbstring、mysql、json 3.将tm-dev-lib路径添加到include_path中 12年3月19日星期一
  • 15. tm-dev-lib Assets 静态资源服务 CategoryModel DPL 类目模型 标准样式库 ItemModel phpcommon 商品模型 页头页尾 Model View MySQL 模型 视图 Input Action ORG 输入获取 控制器 公共类库 tmdev.php Common Function 公共函数库 入口文件 12年3月19日星期一
  • 16. tm-dev-lib a.tbcdn.cn 1.支持combo,其中??为分隔符 2.如果文件不存在(含combo),则发送404 3.不寻找未压缩版本 4.头信息中不包含编码格式,包括文件类型 5.每个文件都可以有查询串(?部分) 12年3月19日星期一
  • 17. tm-dev-lib tm-dev-lib assets 1.以a.tbcdn.cn为蓝本 2.支持less、coffeescript、markdown实时解析 3.支持指定不同的分支目录 4.支持文件缓存,当本地文件不存在时,自动从 指定的服务器获取文件,并能侦测404状态 5.约定优于配置,没有配置页面(ucool) 12年3月19日星期一
  • 18. tm-dev-lib assets.local.tmall.net 开发者本地机器 svn up svn ci taobao assets server svn up svn ci 挂载共享目录 assets.demo.tmall.net 12年3月19日星期一
  • 19. tm-dev-lib assets方法 12年3月19日星期一
  • 20. tm-dev-lib assets note 1.assets只支持js、css文件(含less、coffee) 2.getAssetsLink支持任意文件 3.assets combo服务支持js、css的combo 4.可以用本地的assets combo代理日常、线上 assets 5.建议在本地启用assets服务进行开发,编写完毕 后再同步到demo服务器 6.demo服务器上assets方法固定使用 assets.demo.tmall.net作为assets服务 12年3月19日星期一
  • 21. tm-dev-lib assets 管理 目前的状态:令人疑惑,容易出错 scm like + crontab release? 12年3月19日星期一
  • 22. tm-dev-lib 文件引入 dpl header、bodyHeader、footer 调用dpl库 调用php页头页尾 render($file, $data) 引入指定文件 12年3月19日星期一
  • 23. tm-dev-lib 文件引入 dpl和php页头页尾 应用优先级高于框架 12年3月19日星期一
  • 24. tm-dev-lib 文件引入 数据传递 1、通过assign($name, $data)向模板赋值 assign方法可以突破作用域的限制 2、通过方法的参数传值,建议使用数组的形式 12年3月19日星期一
  • 25. tm-dev-lib 跨文件使用变量 突破作用域限制 在模板内部获取View实例,调用assign方法赋值 将变量声明为global 使用C方法 12年3月19日星期一
  • 26. tm-dev-lib 引入TMS区块 importTMS($file) 目前只适合于引入没有php代码的区块 12年3月19日星期一
  • 27. tm-dev-lib 索引机制 http://demo.tmall.net/ 12年3月19日星期一
  • 28. tm-dev-lib 索引机制 12年3月19日星期一
  • 29. tm-dev-lib 索引机制 如何生成 svn hook : post-commit svn update 更新web目录 svnlook changed 获取变更列表 分别处理目录和文件变动,生成sql语句并执行 遇到@noindex标记:删除索引 insert into .... on duplicate key update... 12年3月19日星期一
  • 30. tm-dev-lib 后续 解析velocity模板 12年3月19日星期一
  • 31. tm-dev-lib 后续 svn diff、svn log 使开发方便地看到更改 12年3月19日星期一
  • 32. tm-dev-lib 后续 数据模型 12年3月19日星期一
  • 33. tm-dev-lib 后续 页面数据抓取 12年3月19日星期一
  • 34. end thank you 12年3月19日星期一