Web development with zend framework
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Web development with zend framework

on

  • 10,903 views

 

Statistics

Views

Total Views
10,903
Views on SlideShare
3,964
Embed Views
6,939

Actions

Likes
3
Downloads
62
Comments
0

14 Embeds 6,939

http://yanbin.org 6697
http://blog.thinkinlamp.com 181
http://www.thinkinlamp.com 31
http://cache.baidu.com 8
http://www.slideshare.net 5
http://translate.googleusercontent.com 5
http://wse.baidu.com 3
http://abtasty.com 3
http://www.sogou.com 1
http://yanbin.org&_=1330311914921 HTTP 1
http://snapshot.soso.com 1
http://webcache.googleusercontent.com 1
http://thinkinlamp.com 1
http://207.46.192.232 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Web development with zend framework Presentation Transcript

  • 1. WEB 开发实践 基于 Zend Framework
  • 2. 自我简介 • 闫斌(Ben Yan) • Sr. Engineer @ BI-Tracking, ValueClick Brands • 抚琴居(http://www.yAnbiN.org) • Ben.Yan@msn.com
  • 3. 怎么认识 Zend Framework 类库? 框架? 是的,两个都是!!
  • 4. 怎么使用 Zend Framework Component Library Business Zend_Db/Zend_Pdf/Zend_Mail/Zend_Feed/… Logic Application Framework
  • 5. Zend Framework 程序骨架 >zf.bat create project quickstart quickstart ├─document Quickstart ├─source ├─docs │ ├─application ├─application │ │ ├─configs │ ├─configs │ │ ├─controllers │ ├─controllers │ │ ├─models │ ├─models │ │ └─views │ └─views │ │ ├─helpers │ ├─helpers │ │ └─scripts │ └─scripts │ ├─library ├─library │ ├─resource ├─public │ └─public └─tests └─testing ├─application ├─application └─library └─library
  • 6. Zend_Front_Controller – 插件 • routeStartup DB 、Cache、Log 等各组件的初始化、自定义路由 • routeShutdown 权限控制(module/controller/action)、载入特定资源 • dispatchLoopStartup 模板选择 • preDispatch 多次调用。更改 Action 执行顺序。 • postDispatch 多次调用。Action Response 已知,渲染视图。 • dispatchLoopShutdown 收尾工作、发送日志(Zend_Wildfire)
  • 7. Zend_Front_Controller – 路由 • 类型众多: • Static、Regex、Hostname、Rest 、Chain • Route_Chain: • 将多个路由进行组合,1+1>2 • 不同的路由可指向同一个Action • 方便网站升级,有利于 SEO
  • 8. Zend_Action_Controller 瘦!
  • 9. Zend_Application • 一切皆为资源(Resource),尽量延迟加载 • 高度可定制化 • 资源依赖 class Bootstrap extends Zend_Application_Bootstrap_Bootstrap { protected function _initXYZ() { $this->bootstrap('Cachemanager'); $cacheManager = $this->getResource('Cachemanager'); // doSomthing ... return $xyz; } }
  • 10. Zend_View & Zend_Layout • 尽量通过 Zend_View_Interface 来使用模板系统 • 灵活使用视图助手(View Helper) • 占位符类:HeadScript、HeadLink、HeadMeta、HeadTitle • 区域助手:Partial、PartialLoop • 使用 Zend_Layout 解决网站页面整体结构问题 • 避免直接使用 Zend_Form 渲染页面 • Zend_Form_Decorator_ViewScript
  • 11. Model
  • 12. 分层架构 界面层 • 解释命令、显示信息(比如 MVC 中 Controller、View) 服务层 • 定义软件功能,协调领域对象。小型项目可同领域层合并 领域层 • 系统核心:负责业务概念、业务状况以及业务觃则 基础结构层 • 提供基础的技术支持:消息发送、领域持久化、事务管理等 原则:每层都高内聚,同上层松耦合,且只依赖于下层。
  • 13. 服务层 • 定义软件功能 • 外观上,易用的应用程序的 API;内部上,协调领域逻辑。 • 最小化的服务层是对某一领域逻辑的简单封装 • 常见应用 • CURD 与缓存(Zend_Cache) • 应用程序逻辑(Zend_Mail、Zend_Log) • 认证与授权(Zend_Auth、Zend_Acl) • 数据的过滤与校验(Zend_Form、Zend_Filter、Zend_Validate)
  • 14. 领域层 • 领域模型应该是一个只关注自身业务的类 • 现实的折衷 • class XXX extends Zend_Db_Table • class YYY extends Doctrine_Record
  • 15. 基础架构层/数据源层 • 表数据入口(Table Data Gateway,Zend_Db_Table) • 数据表访问入口,每个实例处理所有行 • 行数据入口(Table Data Gateway,Zend_Db_Table_Row) • 单条记录入口,每个实例代表一行 • 活动记录(Active Record,Doctrine_Record) • 跟行数据入口相似,但增加了领域逻辑 • 数据映射器(Data Mapper,Doctrine 2) • 独立的对象与数据持久层的映射
  • 16. /** * @Entity * @Table(name="users") Doctrine 2 简介 * @HasLifecycleCallbacks */ class User { /** • Object-Relational Mapper * @Id * @Column(type="integer") */ • 支持基本映射 protected $id; • 支持关联映射 /** @Column(type="integer") */ protected $created; • Entity Manager /** *@OneToOne(targetEntity="Address") • 工作单元(Unit of Work) */ protected $address; • 后写事务(Transactional write-behind) /** @PrePersist */ public function onPrePersist() • Event System { $this->created = time(); } }
  • 17. 怎么获取帮助 • 官方手册 • Quick Start、Getting Started with XXX、Reference Guard • 博客、社区、邮件列表 • PHP Developer / Planet PHP、 Community Wiki、Mailing Lists • Matthew Weier(Project Leader)、Proposals(Requirements、Theory) • 幻灯片、视频、图书 • Slide Share、Zend Casts、 Webinars、 Podcasts • Zend Framework 1.8 Web Application Development • Google
  • 18. Questions ?