• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Web development with zend framework
 

Web development with zend framework

on

  • 10,493 views

 

Statistics

Views

Total Views
10,493
Views on SlideShare
3,769
Embed Views
6,724

Actions

Likes
3
Downloads
62
Comments
0

14 Embeds 6,724

http://yanbin.org 6482
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 Web development with zend framework Presentation Transcript

    • WEB 开发实践 基于 Zend Framework
    • 自我简介 • 闫斌(Ben Yan) • Sr. Engineer @ BI-Tracking, ValueClick Brands • 抚琴居(http://www.yAnbiN.org) • Ben.Yan@msn.com
    • 怎么认识 Zend Framework 类库? 框架? 是的,两个都是!!
    • 怎么使用 Zend Framework Component Library Business Zend_Db/Zend_Pdf/Zend_Mail/Zend_Feed/… Logic Application Framework
    • 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
    • Zend_Front_Controller – 插件 • routeStartup DB 、Cache、Log 等各组件的初始化、自定义路由 • routeShutdown 权限控制(module/controller/action)、载入特定资源 • dispatchLoopStartup 模板选择 • preDispatch 多次调用。更改 Action 执行顺序。 • postDispatch 多次调用。Action Response 已知,渲染视图。 • dispatchLoopShutdown 收尾工作、发送日志(Zend_Wildfire)
    • Zend_Front_Controller – 路由 • 类型众多: • Static、Regex、Hostname、Rest 、Chain • Route_Chain: • 将多个路由进行组合,1+1>2 • 不同的路由可指向同一个Action • 方便网站升级,有利于 SEO
    • Zend_Action_Controller 瘦!
    • Zend_Application • 一切皆为资源(Resource),尽量延迟加载 • 高度可定制化 • 资源依赖 class Bootstrap extends Zend_Application_Bootstrap_Bootstrap { protected function _initXYZ() { $this->bootstrap('Cachemanager'); $cacheManager = $this->getResource('Cachemanager'); // doSomthing ... return $xyz; } }
    • Zend_View & Zend_Layout • 尽量通过 Zend_View_Interface 来使用模板系统 • 灵活使用视图助手(View Helper) • 占位符类:HeadScript、HeadLink、HeadMeta、HeadTitle • 区域助手:Partial、PartialLoop • 使用 Zend_Layout 解决网站页面整体结构问题 • 避免直接使用 Zend_Form 渲染页面 • Zend_Form_Decorator_ViewScript
    • Model
    • 分层架构 界面层 • 解释命令、显示信息(比如 MVC 中 Controller、View) 服务层 • 定义软件功能,协调领域对象。小型项目可同领域层合并 领域层 • 系统核心:负责业务概念、业务状况以及业务觃则 基础结构层 • 提供基础的技术支持:消息发送、领域持久化、事务管理等 原则:每层都高内聚,同上层松耦合,且只依赖于下层。
    • 服务层 • 定义软件功能 • 外观上,易用的应用程序的 API;内部上,协调领域逻辑。 • 最小化的服务层是对某一领域逻辑的简单封装 • 常见应用 • CURD 与缓存(Zend_Cache) • 应用程序逻辑(Zend_Mail、Zend_Log) • 认证与授权(Zend_Auth、Zend_Acl) • 数据的过滤与校验(Zend_Form、Zend_Filter、Zend_Validate)
    • 领域层 • 领域模型应该是一个只关注自身业务的类 • 现实的折衷 • class XXX extends Zend_Db_Table • class YYY extends Doctrine_Record
    • 基础架构层/数据源层 • 表数据入口(Table Data Gateway,Zend_Db_Table) • 数据表访问入口,每个实例处理所有行 • 行数据入口(Table Data Gateway,Zend_Db_Table_Row) • 单条记录入口,每个实例代表一行 • 活动记录(Active Record,Doctrine_Record) • 跟行数据入口相似,但增加了领域逻辑 • 数据映射器(Data Mapper,Doctrine 2) • 独立的对象与数据持久层的映射
    • /** * @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(); } }
    • 怎么获取帮助 • 官方手册 • 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
    • Questions ?