




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Perl在电子商务平台的主要应用 演讲者 JamesZhengEMAIL James PerlChina org简介 来自成都 服务于一家美国公司 正在从事基于Oracle Perl Catalyst Mason的电子商务平台开发 欢迎更多优秀的工程师加到我们的队伍中来 目录 一 我们的系统结构二 平台 语言 框架及其它相关的三 Perl在我们体系的全面应用四 我们的团队 与Perl无关或有关 五 讨论 如果有多的时间或邮件给我 一 我们的系统结构 二 平台 语言 框架及其它相关的 RedhatLinuxPerlMason CatalystApache Mod perlOracle MySQLHTML XHTML AJAXPostfix Memcached Mogilefs 三 Perl在我们体系的全面应用 1 WEB及邮件应用开发 这次主要讨论的 2 数据维护与备份等方面 下次聚会 3 服务器监控与同步方面 下次聚会 4 支付及信用卡处理方面 下次聚会 5 其它更多 例如DNS维护 日志处理 内部管理等 下次聚会 什么是MASON MASON是一种组建化开发的框架式结构 其专门为大型商务类网站所设计 在其官方网站称为 嵌入Perl语言到HTML的模板技术 但似乎在这里除了基本的语法同Perl一样外 已经完全不是那种顺序型解析的页面语言了 Mason主页 3 1 1 当前我们MASON项目网站的主要框图 3 1 2 Mason页面部分 autohandler 所有正常访问都被先执行自动处理器dhandler 所有错误访问都被执行mason data 被编译的Mason数据Mason的处理 redirect cache global 内存处理session 持续性的数据库连接或数据库连接池 深入Mason的运行方式 非顺序化编译的Mason Mason的处理 Redirect r redirect next jsp 这个时候客户端是不会发现被跳转的 实际内部已经发生了变化 Cache在Mason当中可以把数组或变量成为cache并且可以设置有效期 Global变量可以被注册到内存中让所有Mason组建共享 这就是全局变量 内存处理session持续性的数据库连接或数据库连接池 使用Mod Perl的APACHE DBI模块可以轻松实现持续性的数据库连接 深入Mason的运行方式 Mason在执行的时候首先由APACHE交给Mason的模块进行分析编译 之后会把你的组建编译成为Mod Perl模块并且存储在MasonDATA目录中 而服务器真正执行的是注册在内存中的MasonMODULES来运行的 非顺序化编译的Mason 与目前大部分的网页处理技术不同 Mason对代码的处理不是顺序性的 Catalyst是什么 Catalyst是一个优雅的Web应用框架 极为灵活又特别简单 它类似于RubyonRails Java的Spring和Maypole 原来就基于Maypole建立 建议您多去Perlchina org学习更多的知识Catalyst http catalyst perl org http www perlchina orgMailingLists Catalyst lists rawmode org Catalyst SomeNumbers 10Engines Apache FastCGI Standalone 8models CDBI Tangram DBIC Xapian 6supportedviews TT Mason H T Petal 48pluginsintrunk Session Forms Cache 16 539TotalPhysicalSourceLinesofCode Catalysttrunk 445tests1077committedrevisions50 chanceGabbanaisdrunk Catalyst flow 我们正在开发中 欢迎更多有兴趣在这个加入我们的团队 www CatalystFramework org 3 1 4 3Catalyst优势 我们正在开发中 欢迎更多有兴趣在这个加入我们的团队 在整个PerlWEB应用方面的优势 前面已经的SomeNumbers里讲过 2 在我们体系里的优势 1 友好的分开每个层次 让不同的工程师尽可能的做最专注的事 2 我们的业务每天都在随着用户的要求不断变化 通过这个后我们可以做尽可能少的改变 减少BUG发生的机会 3 在这个Catalyst里 由于可以很方便的增加插件 它已经有很多够用的插件 方便于我们扩展更大的市场 Catalyst介绍 我们正在开发中 欢迎更多有兴趣在这个加入我们的团队 Catalyst介绍 Catalyst是一个优雅的Web应用框架 极为灵活又特别简单 1 MVCModel模型存取和修改数据内容 Class DBI Plucene Net LDAP等View视图向用户展示内容 TemplateToolkit Mason HTML Template等Controller控制器控制整个请求阶段 检查参数 派发动作 流程控制 也就是Catalyst 2 灵活性多模型 视图和控制可重用组件无限制URL to Action调度对CGI mod perl Apache Request的支持3 简洁性搭积木似的接口自动发现组件常用模块对应的预定义组件内建测试框架HelperScripts 简单的开始 Install perl MCPAN e installBundle Catalyst Setup catalyst plMyApp cdMyApp script myapp create plcontrollerLibrary LoginRun script myapp server pl现在可以用你喜欢的浏览器或者代理程序来访问下面的地址来检查Catalyst的运行状况 http localhost 3000 http localhost 3000 library login Catalyst工作原理 应用类 在模板 视图和控制组件以外还有一个代表你的应用的类 在这个类里面可以配置应用 加载插件 定义应用级的动作 扩展Catalyst packageMyApp usestrict useCatalystqw Debug MyApp config name MyApplication root home joeuser myapp root Youcanputanythingelseyouwantinhere my configuration variable something subdefault Private my self context context response output Catalystrockz 1 对大多数应用来说 Catalyst只要求你定义两个配置参数 Name 应用的名字 Root 模板文件 图片或者其他静态数据所在的路径 Catalyst工作原理 语境 c Catalyst自动把Context对象 赐 给你的应用类 这样整个应用里都能访问 Context不但用来和Catalyst打交道 也能把应用的Components联系起来 比如想要在TemplateToolkit模板里面使用Context 只要这样 Welcometo c config name Context包含了几个重要的对象Catalyst Request c req 请求对象包含了各种请求相关信息 例如查询参数 cookie 上传内容 头信息等等 Catalyst Response c res 响应对象有点类似请求对象 但是只包含响应相关的信息 Catalyst Config配置信息Catalyst Log日志信息Stash 是特别设立出来在应用的各组件之间共享数据的哈希表 注意stash只能在每次请求周期内传递数据 对新的请求它会被清空 如果你需要更加持久的数据 请使用session Catalyst工作原理 动作 行为 Catalyst控制器是由动作来定义的 动作是一个带有属性的子程 支持几类动作 1 Literal字面动作subbar Path foo bar 仅仅匹配http localhost 3000 foo bar 2 正则匹配动作 Regex subbar Regex item d order d 匹配任何符合动作模式的URL如http localhost 3000 item23 order42 3 顶级动作packageMyApp subfoo Global 匹配http localhost 3000 foo 函数名字直接匹配在URL的基础部分后面 4 名字空间为前缀的动作packageMyApp C My Controller subfoo Local 匹配于http localhost 3000 my controller foo 这个动作类型匹配的URL必须带有组件的类名 包名 相应的前缀 5 私有动作subfoo Private 不匹配URL 也不可以被相应的正则匹配的URL的请求来调用 私有的动作只能在Catalyst应用内部通过forward方法来调用 内建私有动作default Private这个动作在没有其他的动作匹配的时候调用 可以用来显示一个主应用的通用首页 或者某个控制器的错误页面 begin Private在请求的开始被调用 在任何匹配的动作之前被调用 end Private在请求的最后 所有的动作之后 被调用 URL路径处理 可以把URL路径的一部分作为可变参数来传递 subboo Path foo boo subhoo Path foo boo hoo 参数处理 在URL查询串里面传递的参数用Catalyst Request类的方法来处理 它的param方法和CGI pm里面的param方法有相同的功能 流程控制 用forward方法来控制应用流程 它按照传递给它的动作键来执行 这可能是同一个或者不同的Catalyst控制器中的动作 或者是一个类名 有可能带一个方法名 在forward结束后 控制会返回到发起forward的方法 Catalyst工作原理 组件 Catalyst有个非同寻常的灵活的组件系统 你可以自由的定义任意数量的Models Views Controllers 所有的组件都必须继承于Catalyst Base 它提供简单的类结构和通用类方法如config和new 构造器 packageMyApp C Catalog usestrict usebase Catalyst Base PACKAGE config foo bar 1 Catalyst工作原理 Views 视图 为要展示如何定义视图 我们要用代表TemplateToolkit的基类Catalyst View TT 我们需要做的只是继承这个类 packageMyApp V TT usestrict usebase Catalyst View TT 1 还可以用辅助脚本来自动生成这个 script myapp create plviewTTTT这里第一个TT告诉脚本创建一个TemplateToolkit视图 第二个TT告诉脚本它将被命名为TT 这就产生了一个process 方法 因此可以用 c forward MyApp V TT 来套用模板 基类已经提供了process 方法 因此不用再说 c forward qw MyApp V TTprocess 了 subhello Global my self c c stash template hello tt subend Private my self c c forward MyApp V TT 通常总是在请求的末尾来套用模板 因此使用全局的end动作来完成是最好的 Catalyst工作原理 Models 我们还是使用现存的基类 这次是Catalyst Model CDBI代表的Class DBI packageMyApp M CDBI usestrict usebase Catalyst Model CDBI PACKAGE config dsn dbi SQLite tmp myapp db relationships 1 1 Catalyst会自动载入表结构和关系 用stash来传递数据给模板 packageMyApp usestrict useCatalyst Debug PACKAGE config name MyApplication root home joeuser myapp root PACKAGE setup subend Private my self c c stash template index tt c forward MyApp V TT subview Global my self c id c stash item MyApp M CDBI Foo retrieve id 1 Theidis item data Catalyst工作原理 控制器 多个控制器分工可以很好的将应用分割成不同的逻辑功能域 packageMyApp C Login sign in Local new password Local sign out Local packageMyApp C Catalog subview Local sublist Local package
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中小学教师招聘考试预测题及答题技巧
- 2025年中央空调系统中级操作员考试模拟试题大全
- 抢救车核对课件
- 抢救药物速记讲解课件
- 2025年城市管道天然气项目建议书
- 抗震安全培训通知课件
- 2025年检重秤项目发展计划
- 2025年坦克玻璃系列项目合作计划书
- 2025年抗重症肌无力药项目建议书
- 黑龙江省鹤岗市绥滨县2025-2026学年八年级上学期开学考试生物试题 (含答案)
- 甲状腺癌根治术护理查房
- ttt培训课件 肯德基
- 防汛应急培训课件
- 职工小家日常管理制度
- 新生儿呼吸暂停及处理
- 校园欺凌案件管理制度
- 2025至2030年中国消防工程行业发展动态及未来前景规划报告
- 2025至2030年中国民用采暖炉行业市场行情动态及发展前景研判报告
- “十五五”城镇住房发展规划
- 药品网络交易服务三方平台质量管理体系文件-B2B平台(完整版)
- 儿童心理发展课件
评论
0/150
提交评论