书籍详情

Symfony权威指南

Symfony权威指南

作者:(法国)Fabien Potencier、(法国)Francois Zaninotto 著;江乐、王唯真、杭健、等 译

出版社:电子工业出版社

出版时间:2008-01-01

ISBN:9787121067495

定价:¥49.00

购买这本书可以去
内容简介
  本书介绍了symfony这个领先的PHP开发框架,展示如何利用symfony的众多功能更快更有效率地开发Web应用程序,即使你只懂一点PHP也没有关系。在本书里,你将了解如何使用symfony建立Web应用程序。本书分成五篇:“基础知识”篇,包含所有的基本概念和开始symfony的基本知识;“核心架构”篇,讲述模型视图控制器(MVC)在symfony中的实现,以及如何用这样的三层结构模型建立页面和应用程序;“特殊功能”篇,解释如何使用symfony加快“漂亮”的URL、表单、验证、Ajax交互、缓存和国际化应用程序的开发;“开发工具”篇,介绍 symfony提供的加快日常开发的工具,代码生成、单元测试框架、命令行任务和插件;“成为symfony专家”篇,揭示symfony代码里的一些秘密,讲述了如何调整框架的行为。 本书的目的在于降低框架入门的难度,为PHP开发者提供1.0版的参考书,让这个框架能被企业接受。
作者简介
  Francois Zaninotto是一名互联网应用项目顾问和项目经理。1997年毕业于法国商业学校Ecole des Mines计算机科学专业。在选择从事互联网行业之前他尝试了多份工作:儿童机构的社工、自行车出租店经理、轮胎制造商的Web项目经理、为这个轮胎制造商撰写到德国旅游的导游文章,以及Médecins Sans Frontières的物流师和某消费信用公司的IT架构师。他于2003年加入Sensio网络公司,此后负责了许多互联网和Intranet的Web应用项目,解决了很多复杂的可用性问题(Usability),涉及许多应用敏捷开发模式模式模型和先进的Web技术.symfony项目开始之后,他负责编写文档.symfony在线书籍和教程。Fabien Potencier 是天生的企业家.从10岁开始,他就总是梦想着成立和运营公司.他在法国商业学校EcoledesMines取得工程学学位和在巴黎高等商业学院(HECParis)取得企业MBA学位之后开始职业生涯.1998年,他刚毕业的那年,Fabien和他的同学成立了他的第一家公司.这是一家专注于简化技术和开源技术的网络公司,它的名字是Sensio.他靠自己敏锐的专业知识和无止尽的求知欲获得了很多法国大公司的项目.随着Sensio的不断发展(写这本书的时候,它有30多名员工),Fabien开始从事其他业务:一个在Lille(法国)的室内卡丁车赛道,一个汽车配件电子商务网站,还有一个在法国最著名的赛道的自动驾驶训练生意.Fabien是symfony框架的主要开发者,他负责所有代码的95%.现在,Fabien把大部分时间花在Sensio的CEO和symfony项目负责人的工作上。
目录
第1篇 基础知识
第1章 symfony介绍
1.1 symfony简介
1.1.1 symfony的功能
1.1.2 谁开发了symfony?为什么要开发symfony
1.1.3 symfony社区
1.1.4 symfony适合我吗
1.2 基本概念
1.2.1 PHP 5
1.2.2 面向对象程序设计(OOP)
1.2.3 魔术方法(Magic Methods)
1.2.4 PHP扩展与应用程序库(PEAR)
1.2.5 对象关系映射(ORM)
1.2.6 快速应用程序开发(RAD)
1.2.7 YAML
1.3 总结
第2章 探索symfony代码
2.1 MVC模式
2.1.1 MVC层次
2.1.2 MVC以外的层分离方式
2.1.3 symfony的MVC实现方式
2.1.4 symfony核心类
2.2 代码组织
2.2.1 项目结构:应用程序、模块与动作
2.2.2 目录结构
2.3 常用工具
2.3.1 参数存储器
2.3.1 (Parameter Holoder)
2.3.2 常量(Contant)
2.3.3 类自动载入(Class Autoloading)
2.4 总结
第3章 运行symfony
3.1 安装沙盒(Sandbox)
3.2 安装symfony库
3.2.1 PEAR方式安装symfony
3.2.2 从SVN库中获得symfony
3.3 配置一个程序
3.3.1 建立一个项目
3.3.2 建立一个应用程序
3.4 配置Web服务器
3.4.1 设置虚拟主机
3.4.2 配置一个共享服务器
3.5 安装问题
3.5.1 常见问题
3.5.2 symfony资源
3.6 源代码版本控制
3.7 总结
第4章 页面创建基础
4.1 建立模块框架
4.2 增加一个页面
4.2.1 增加一个动作
4.2.2 增加一个模板
4.2.3 从动作传递信息给模板
4.3 通过表单从用户获取数据
4.4 链接到另一个动作
4.5 从请求中取得信息
4.6 总结
第5章 配置symfony
5.1 配置系统
5.1.1 YAML语法与symfony惯例
5.1.2 救命,YAML文件把我的程序搞死了
5.2 配置文件概述
5.2.1 项目配置
5.2.2 应用程序配置
5.2.3 模块配置
5.3 环境
5.3.1 什么是环境
5.3.2 配置层叠
5.4 配置缓存
5.5 从代码里访问配置信息
5.5.1 sfConfig类
5.5.2 自定义应用程序配置与app.yml
5.6 使用配置文件的技巧
5.6.1 在YAML文件里使用常量
5.6.2 在配置文件里使用脚本
5.6.3 浏览你的YAML文件
5.7 总结
第2篇 核心架构
第6章 深入了解控制器层
6.1 前端控制器
6.1.1 前端控制器的工作细节
6.1.2 默认的前端控制器
6.1.3 调用其他的前端控制器来切换环境
6.1.4 批处理文件
6.2 动作(Action)
6.2.1 动作类
6.2.2 另一种动作类语法
6.2.3 从动作里获取信息
6.2.4 动作结束
6.2.5 跳到另一个动作
6.2.6 几个动作共享的代码
6.3 访问请求
6.4 用户会话
6.4.1 访问用户会话
6.4.2 Flash属性
6.4.3 会话管理
6.5 动作安全
6.5.1 访问限制
6.5.2 访问授权
6.5.3 复合证书
6.6 检验和处理错误的方法
6.7 过滤器
6.7.1 过滤器链
6.7.2 建立自己的过滤器
6.7.3 过滤器激活和参数
6.7.4 过滤器实例
6.8 模块配置
6.9 总结
第7章 深入了解视图层
7.1 模板
7.1.1 辅助函数(Helpers)
7.1.2 页面布局
7.1.3 模板快捷变量
7.2 代码片段(Code Fragments)
7.2.1 局部模板(Partial)
7.2.2 组件(Component)
7.2.3 槽(Slot)
7.3 视图配置
7.3.1 view.yml文件
7.3.2 响应对象
7.3.3 视图配置
7.4 组件槽(Component Slot)
7.5 输出转义(Output Escaping)
7.5.1 开启输出转义
7.5.2 转义策略
7.5.3 转义辅助函数
7.5.4 转义数组与对象
7.6 总结
第8章 深入了解模型层
8.1 为什么使用ORM和抽象层
8.2 symfony的数据库
8.2 设计(schema)
8.2.1 设计示例
8.2.2 基本设计语法
8.3 模型类
8.3.1 基础类和自定义类
8.3.2 对象和Peer类
8.4 访问数据
8.4.1 获得列值
8.4.2 获得相关联的数据
8.4.3 保存和删除数据
8.4.4 通过主键来获得记录
8.4.5 通过Criteria获得数据
8.4.6 直接使用SQL查询语句
8.4.7 使用特殊日期列
8.5 数据库连接
8.6 扩展模型
8.6.1 增加新的方法
8.6.2 覆盖现有方法
8.6.3 使用模型行为
8.7 扩展设计(schema)语法
8.7.1 属性
8.7.2 列的详细资料
8.7.3 外键
8.7.4 索引
8.7.5 空列
8.7.6 i18n表
8.7.7 超越schema.yml:
8.7.7 schema.xml
8.8 不要重复建立模型
8.8.1 基于已有的设计建立
6.1.3 一个SQL数据库结构
8.8.2 基于已有数据库建立
6.1.3 YAML数据模型
8.9 总结
第3篇 特殊功能
第9章 链接和路由系统
9.1 什么是路由
9.1.1 URL是服务器指令
9.1.2 URL是界面的一部分
9.1.3 URL如何工作
9.2 URL重写
9.3 链接辅助函数
9.3.1 超链接、按钮和表单
9.3.2 链接辅助函数的可选参数
9.3.3 伪装的GET和POST选项
9.3.4 把请求参数强制设置为
6.1.3 GET变量
9.3.5 使用绝对路径
9.4 路由配置
9.4.1 规则和模式
9.4.2 模式限制
9.4.3 设置默认值
9.4.4 用规则名字来加快
6.1.3 路由速度
9.4.5 增加.html扩展名
9.4.6 不使用routing.yml创建规则
9.5 在动作中处理路由
9.6 总结
第10章 表单
10.1 表单辅助函数
10.1.1 主要的表单标签
10.1.2 标准的表单元素
10.1.3 日期输入控件
10.1.4 编辑富文本(rich text)
10.1.5 选择国家和语言
10.2 对象的表单辅助函数
10.2.1 生成对象的下拉列表
10.2.2 创建一个基于外键列的下拉列表
10.2.3 更新对象
10.3 表单验证
10.3.1 验证器
10.3.2 验证文件
10.3.3 重新显示表单
10.3.4 在表单中显示出错信息
10.3.5 重新填充表单数据
10.3.6 标准symfony验证器
10.3.7 具名验证器(Named Validator)
10.3.8 重新指定验证方法
10.3.9 验证文件到底是什么样子
10.4 复杂的验证
10.4.1 创建一个定制的验证器
10.4.2 用数组表示表单域
10.4.3 验证空域
10.5 总结
第11章 集成Ajax
11.1 基本的JavaScript辅助函数
11.1.1 模板中的JavaScript
11.1.2 更新一个DOM元素
11.1.3 轻松地降级Graceful Degradation)
11.2 Prototype
11.3 Ajax辅助函数
11.3.1 Ajax链接
11.3.2 Ajax驱动的表单
11.3.3 周期性调用远程函数
11.4 远程调用参数
11.4.1 根据响应状态更新不同的元素
11.4.2 根据位置更新元素
11.4.3 根据条件更新元素
11.4.4 确定Ajax请求方法
11.4.5 授权脚本运行
11.4.6 创建回调函数
11.5 创建视觉效果
11.6 JSON
11.7 用Ajax完成复杂的交互
11.7.1 自动完成
11.7.2 拖放
11.7.3 可排序列表
11.7.4 就地编辑
11.8 总结
第12章 缓存
12.1 缓存响应
12.1.1 全局缓存设置
12.1.2 缓存一个动作
12.1.3 缓存一个局部模板、组件或者组件槽
12.1.4 缓存模板片段
12.1.5 动态配置缓存
12.1.6 使用极速缓存(Super Fast Cache)
12.2 从缓存里删除项目
12.2.1 删除整个缓存
12.2.2 清除指定的缓存
12.2.3 缓存目录结构
12.2.4 手工清除缓存
12.3 缓存测试与监测
12.3.1 建立一个临时工作环境
12.3.2 监测性能
12.3.3 基准化分析(Benchmarking)
12.3.4 识别缓存的部分
12.4 HTTP   1.1与客户端缓存
12.4.1 增加ETag头信息来避免发送重复的内容
12.4.2 增加Last-Modified头信息避免发送仍然有效的内容
12.4.3 通过增加Vary头信息来保存一个页面的多个缓存版本
12.4.4 通过增加Cache-Control头信息来允许客户端缓存
12.5 总结
第13章 国际化(i18n)与本地化(l10n)
13.1 用户的国家和
13.1 语言(User Culture)
13.1.1 设置默认的国家和语言
13.1.2 改变用户的国家和语言
13.1.3 自动确定用户的国家和语言
13.2 标准与格式
13.2.1 根据用户culture值输出数据
13.2.2 从本地化输入获取数据
13.3 数据库中的文本信息
13.3.1 创建本地化数据库设计(schema)
13.3.2 运用生成的i18n对象
13.4 界面翻译
13.4.1 翻译的配置
13.4.2 运用翻译辅助函数
13.4.3 运用字典文件
13.4.4 管理字典
13.4.5 处理其他需要翻译的元素
13.4.6 处理复杂的翻译需求
13.4.7 在模板外调用翻译辅助函数
13.5 总结
第4篇 开发工具
第14章 生成器(Generator)
14.1 基于模型生成代码
14.1.1 脚手架与管理界面
14.1.2 初始化或生成代码
14.1.3 数据模型示例
14.2 脚手架
14.2.1 生成脚手架
14.2.2 初始化脚手架
14.3 管理界面
14.3.1 初始化管理界面模块
14.3.2 初探生成的代码
14.3.3 generator.yml配置文件
14.4 配置生成器
14.4.1 字段
14.4.2 视图定制
14.4.3 list视图相关的定制
14.4.4 edit视图相关的定制
14.4.5 处理外键
14.4.6 增加交互
14.4.7 表单验证
14.4.8 使用证书限制用户动作
14.5 修改生成模块的外观
14.5.1 使用自定义样式表
14.5.2 增加自定义头部与尾部
14.5.3 自定义主题
14.6 总结
第15章 单元测试和功能测试
15.1 自动化测试
15.1.1 单元测试和功能测试
15.1.2 测试驱动的开发方法
15.1.3 lime测试框架
15.2 单元测试
15.2.1 单元测试概述
15.2.2 单元测试方法
15.2.3 测试参数
15.2.4 测试单元任务
15.2.5 测试桩(Stub)、测试资源(Fixture)和自动加载
15.3 功能测试
15.3.1 功能测试概要
15.3.2 用sfTestBrowser对象浏览
15.3.3 运用断言
15.3.4 运用CSS选择器
15.3.5 在测试环境中工作
15.3.6 功能测试任务
15.4 为测试命名
15.5 特别的测试需求
15.5.1 在测试框架(Test Harness)
15.5.1 中进行测试
15.5.2 存取数据库
15.5.3 测试缓存
15.5.4 测试客户端交互
15.6 总结
第16章 应用程序管理工具
16.1 日志
16.1.1 PHP日志
16.1.2 symfony日志
16.2 调试
16.2.1 symfony调试模式
16.2.2 symfony异常
16.2.3 Xdebug扩展
16.2.4 网页调试工具条
16.2.5 手动调试
16.3 填充数据库
16.3.1 fixture文件格式
16.3.2 导入数据
16.3.3 使用关联表
16.4 部署应用程序
16.4.1 为FTP传输冻结项目
16.4.2 使用rsync进行增量
16.4.2 文件传输
16.4.3 忽略无关文件
16.4.4 管理投入使用的应用程序
16.5 总结
第17章 扩展symfony
17.1 Mixins
17.1.1 理解多重继承
17.1.2 Mixing类
17.1.3 声明一个类是可扩展的
17.1.4 注册扩展(Extension)
17.1.5 更精确的扩展
17.2 factory
17.3 桥接其他框架组件
17.4 插件
17.4.1 查找symfony插件
17.4.2 安装插件
17.4.3 解读插件
17.4.4 如何写一个插件
17.5 总结
第5篇 成为symfony专家
第18章 性能
18.1 调整服务器
18.2 调整模型
18.2.1 优化Propel整合
18.2.2 限制化合(Hydrate)
18.2.2 对象数量
18.2.3 用Join让结果数量最小化
18.2.4 避免使用临时数组
18.2.5 绕过ORM
18.2.6 数据库加速
18.3 调整视图
18.3.1 使用最快的代码片段
18.3.2 加速路由过程
18.3.3 略过模板
18.3.4 限制默认的辅助函数
18.3.5 压缩响应
18.4 调整缓存
18.4.1 选择性地清除部分缓存
18.4.2 生成缓存页
18.4.3 使用数据库存储系统
18.4.3 进行缓存
18.4.4 绕过symfony
18.4.5 缓存函数调用的结果
18.4.6 在服务器上缓存数据
18.5 屏蔽未使用过的功能
18.6 优化你的代码
18.6.1 核心编译
18.6.2 sfOptimizer插件
18.7 总结
第19章 管理symfony配置文件
19.1 symfony配置参数
19.1.1 默认的模块和动作
19.1.2 激活可选特性
19.1.3 功能特性配置
19.2 扩展自动载入功能
19.3 定制文件结构
19.3.1 基本的文件结构
19.3.2 定制文件结构
19.3.3 修改项目的Web根目录
19.3.4 连接symfony库
19.4 理解配置处理器
19.4.1 默认的配置处理器
19.4.2 加入你自己的处理器
19.5 控制PHP参数
19.6 总结
猜您喜欢

读书导航