首页 | PHP资讯 | 技术专栏 | 资源共享 | PHP培训 | PHP职场 | 图书 | PHP ON WIN | PHP圈子
返回列表 回复 发帖

Introduction to Original:<<PHP 对象,模式与实践>>第二版

Introduction to Original:<<PHP 对象,模式与实践>>第二版



-----------------------------
原名:<<PHP Objects, Patterns, and Practice>> 2nd version。
作者:Matt Zandstra
出版:Apress。2008
页数:487
----------------------------

难度指数:中级。

推荐指数: (推荐指数分级:0-最低级;5-最高级)

内容祥略 -- 指书本内容对论述领域的覆盖面和深入程度
实用性 -- 指书本内容能否直接用在项目上
重要性 -- 指书本内容对适用读者的参考程度和启发程度
独创性 -- 指书本论述的内容是否独创的,或之前没有同类型的书
写作风格 -- 指语言的流畅性,条理性,易读性。是否突出重点,难点,有没有介绍深入的学习材料,等。

-- 内容祥略:4 (主要覆盖了PHP方面有关OO的内容,如:对象,OO的高级特征,对象工具,对象设计,设计模式等论题。在OO方面的论述非常深入,在模式方面的论述也对PHP有相当的针对性。)
-- 实用性: 3 (虽然此书也附有实践性的讨论,但主要为了帮助理解OO的概念和原理,因此此书的精华不在此部分。)
-- 重要性: 5 (深入论述了PHP面向对象和设计模式应用的问题,对目前PHPER从过程编程向OO编程的转换有很大参考性和启发性)
-- 独创性: 4  (在此书三年前发行时,有很高的独创性,但现在,论述PHP OO应用的也不少了。)
-- 写作风格:5  (论述OO的书不少,但立足PHP,讲得深入透彻的还真不多,这算是其中很好的一本书。书中用了很多俗语,有些部分很口语化,讲述得比较生动,但对外国人(我们)就比较难读了。)

(注:难度指数和推荐指数是依照本人的认识来确定,通过细分推荐指数来尽量保持其客观性)
=======================================================

目录:

第一部分  介绍

1。 PHP:设计和管理 (Design and Management)
  • 问题 (The Problem)
  • PHP和其他语言 (PHP and Other Languages)
  • 关于本书
    • 对象 (Objects)
    • 模式 (Patterns)
    • 实践 (Practice)
    • 第二版
    • 的新内容
  • 小结

第二部分  对象

2。PHP和对象 (PHP and Objects)
  • PHP对象的意外成功 (The Accidental Success of PHP Objects)
  • 走向未来:PHP6 (Into the Future: PHP 6.)
  • 拥护与质疑:使用对象的辩论 (Advocacy and Agnosticism: The Object Debate)
  • 小结
3。对象基础 (Object Basics.)
  • 类和对象 (Classes and Objects)
  • 类中设定属性 (Setting Properties in a Class)
  • 使用方法 (Working with Methods)
    • 创造构造器 (Creating a Constructor Method)
    • 参数和类型 (Arguments and Types)
    • 基本类型 (Primitive Types)
    • 类型暗示:对象类型 (Taking the Hint: Object Types.)
  • 继承 (Inheritance)
    • 继承的问题 (The Inheritance Problem.)
    • 使用继承性 (Working with Inheritance)
    • Public, Private, 和 Protected: 管理类的访问进程 (Public, Private, and Protected: Managing Access to Your Classes)
  • 小结
4。高级特征 (Advanced Features)
  • 静态方法和属性 (Static Methods and Properties)
  • 常量属性 (Constant Properties.)
  • 抽象类 (Abstract Classes)
  • 接口 (Interfaces)
  • 错误处理 (Handling Errors)
    • 异常 (Exceptions)
  • Final类与方法 (Final Classes and Methods)
  • 使用拦截器 (Working with Interceptors)
  • 定义析构方法 (Defining Destructor Methods.)
  • 使用__clone()复制对象 (Copying Objects with __clone())
  • 为对象定义字符串值 (Defining String Values for Your Objects)
  • 小结
5。对象工具 (Object Tools)
  • PHP与类包 (PHP and Packages)
    • PHP与命名空间 (PHP and Namespaces.)
    • 包括路径 (Include Paths)
    • 自动装载 (Autoload)
  • 类与对象函数 (The Class and Object Functions)
    • 类的剖析 (Looking for Classes)
    • 对象或类的研究 (Learning About an Object or Class)
    • 方法研究 (Learning About Methods.)
    • 属性研究 (Learning About Properties)
    • 继承性研究 (Learning About Inheritance)
    • 方法革新 (Method Invocation)
  • 映射API (The Reflection API)
    • 从这开始 (Getting Started)
    • 该你干了 (Time to Roll Up Your Sleeves)
    • 类的检验 (Examining a Class)
    • 方法检验 (Examining Methods.)
    • 方法参数检验 (Examining Method Arguments.)
    • 使用映射API (Using the Reflection API)
  • 小结

6。对象与设计 (Objects and Design)
  • 定义代码设计 (Defining Code Design)
  • 面向对象与过程编程 (Object-Oriented and Procedural Programming)
    • 责任 (Responsibility)
    • 内聚 (Cohesion)
    • 耦合 (Coupling)
    • 正交性(Orthogonality)
  • 选择类 (Choosing Your Classes)
  • 多态性 (Polymorphism)
  • 封装 (Encapsulation.)
  • 忘了怎么做了 (Forget How to Do It)
  • 四种信号 (Four Signposts)
    • 代码重复 (Code Duplication)
    • 类里太多东西了 (The Class Who Knew Too Much.)
    • 什么都能干(The Jack of All Trades)
    • 条件语句 (Conditional Statements.)
  • UML
    • 类图 (Class Diagrams)
    • 顺序图 (Sequence Diagrams)
  • 小结

第三部分  模式

7。什么是设计模式?为什么使用设计模式?
  • 什么是设计模式?
  • 设计模式简述
    • 命名 (Name)
    • 问题 (The Problem)
    • 解法 (The Solution)
    • 结果 (Consequences)
  • 四人帮格式 (The Gang of Four Format)
  • 为什么使用设计模式?
    • 设计模式定义一个问题 (A Design Pattern Defines a Problem.)
    • 设计模式定义一个解法 (A Design Pattern Defines a Solution.)
    • 设计模式与语言无关 (A Design Pattern Defines a Solution.)
    • 模式定义了一个词组 (Patterns Define a Vocabulary.)
    • 模式经过了反复的测试 (Patterns Are Tried and Tested)
    • 模式是精心设计并相互作用的 (Patterns Are Designed for Collaboration)
    • 设计模式提升了良好的设计 (Design Patterns Promote Good Design)
  • PHP与设计模式
  • 小结
8。设计模式的一些原理 (Some Pattern Principles)
  • 模式揭密 (The Pattern Revelation)
  • 组合和继承 (Composition and Inheritance.)
    • 问题讨论  (The Problem)
    • 使用组合 (Using Composition.)
  • 解耦合 (Decoupling)
    • 问题讨论  (The Problem)
    • 松耦合 (Loosening Your Coupling)
  • 对接口编程,不对实施编程 (Code to an Interface, Not to an Implementation.)
  • 变化的概念 (The Concept That Varies.)
  • 模式误用 (Patternitis)
  • 模式
    • 产生对象模式 (Patterns for Generating Objects)
    • 组织化对象和类的模式 (Patterns for Organizing Objects and Classes)
    • 任务导向模式 (Task-Oriented Patterns)
    • 企业模式 (Enterprise Patterns)
    • 数据库模式 (Database Patterns)
  • 小结
9。对象的产生 (Generating Objects.)
  • 产生对象的问题和解决 (Problems and Solutions in Generating Objects)
  • 单一模式 (The Singleton Pattern)
  • 工厂模式 (Factory Method Pattern)
  • 抽象工厂模式 (Abstract Factory Pattern.)
  • 耍个诡计 (But That’s Cheating!)
  • 小结
10。用于可变对象编程的模式 (Patterns for Flexible Object Programming)
  • 结构化的类用于可变化的对象 (Structuring Classes to Allow Flexible Objects.)
  • 组合模式 (The Composite Pattern)
  • 装饰模式 (The Decorator Pattern.)
  • 门面模式 (The Facade Pattern)
  • 小结
11。任务的执行与表述 (Performing and Representing Tasks.)
  • 解释模式 (The Interpreter Pattern)
  • 战略模式 (The Strategy Pattern)
  • 观察模式 (The Observer Pattern)
  • 访问模式 (The Visitor Pattern)
  • 命令模式 (The Command Pattern)
  • 小结
12。企业模式 (Enterprise Patterns)
  • 架构简介 (Architecture Overview)
  • 先耍个花招 (Cheating Before We Start.)
  • 表述层 (The Presentation Layer.)
  • 业务逻辑层  (The Business Logic Layer)
  • 小结
13。数据库模式 (Database Patterns)
  • 数据层 (The Data Layer)
  • 数据匹配 (Data Mapper.)
  • 证实 Map (Identity Map)
  • 工作单元 (Unit of Work)
  • 领域对象工厂 (Domain Object Factory)
  • 证实对象 (The Identity Object)
  • 选择工厂和更新工厂模式 (The Selection Factory and Update Factory Patterns)
  • 数据匹配现在还剩下什么?(What’s Left of Data Mapper Now?)
  • 小结
第四部分 实践

14。好(与坏)的实践 (Good (and Bad) Practice.)
  • 代码外的关注 (Beyond Code)
  • 借个轮子 (Borrowing a Wheel)
  • 好好玩一下 (Playing Nice)
  • 给代码加个翼 (Giving Your Code Wings)
  • 文档 (Documentation)
  • 测试 (Testing)
  • 小结
15。PEAR介绍
  • 什么是PEAR?
  • 安装PEAR包
  • 使用PEAR包
  • 创造自己的PEAR包
  • 小结
16。用phpDocumentor产生文档 (Generating Documentation with phpDocumentor)
  • 为什么要文档?(Why Document?)
  • 安装 (Installation)
  • 产生文档 (Generating Documentation)
  • DocBlock 评论 (DocBlock Comments.)
  • 文档类 (Documenting Classes)
  • 文件层文档 (File-Level Documentation)
  • 文档属性 (Documenting Properties.)
  • 文档方法 (Documenting Methods)
  • 在文档中创造连接 (Creating Links in Documentation)
  • 小结
17。 版本控制与CVS (Version Control with CVS)
  • 为什么使用版本控制 (Why Use Version Control?)
  • 获得CVS (Getting CVS.)
  • CVS存放配置 (Configuring a CVS Repository)
  • 发起项目 (Beginning a Project)
  • 更新和确认 (Updating and Committing)
  • 文件与目录的增加与删除 (Adding and Removing Files and Directories)
  • 标记和输出版本 (Tagging and Exporting a Release)
  • 项目加分支 (Branching a Project.)
  • 小结
18。 测试与PHPUnit (Testing with PHPUnit.)
  • 功能测试和单元测试 (Functional Tests and Unit Tests)
  • 手工测试 (Testing by Hand)
  • PHPUnit介绍 (Introducing PHPUnit)
  • 要注意的地方 (A Note of Caution.)
  • 小结
19。 自动创建与Phing (Automated Build with Phing)
  • 什么是Phing?
  • 获得和安装Phing (Getting and Installing Phing.)
  • 组合建设文件 (Composing the Build Document)
  • 小结

第五部分 结论

20。 对象,模式,实践
  • 对象
    • 选择 (Choice)
    • 封装与委托 (Encapsulation and Delegation)
    • 解耦 (Decoupling)
    • 再用 (Reusability)
    • 美学 (Aesthetics)
  • 模式
    • 模式提供什么给我们 (What Patterns Buy Us)
    • 模式和设计原理 (Patterns and Principles of Design)
  • 实践
    • 测试 (Testing)
    • 文档 (Documentation)
    • 版本控制 (Version Control)
    • 自动创建 (Automated Build)
    • 我还丢了什么 (What I Missed)
  • 小结

第六部分 附录

附录A 参考文献
附录B 简单解释器

索引

------------------------------------------------------------------------------------
下载:
(声明,此ebook只供个人学习用,不能用于各种商业用途)
本帖隐藏的内容需要回复才可以浏览


[ 本帖最后由 goodonyou 于 2008-5-4 18:31 编辑 ]
附件: 您需要登录才可以下载或查看附件。没有帐号?注册
Don't hurry, Don't stop!

----------------------------------------------------------------
第一版介绍 (2004年11月)

我从2000年开始用PHP4开放OO项目,那时PHP4对OO支持有限,但只要小心谨慎,我能用它做很多事情。

PHP5出来后,我在项目中使用了。这简直是一场革命! 过去我面对的所有烦恼,在Zend Engine 2里都得到了解决。这时,我觉得又要写本书了,但这次不是要讲如何克服缺陷,而是如何利用语言提供的资源。

此书面向需要使用OOP开发项目的人。读者需要事先了解PHP,或者不需要我的帮助自己能明白书中的语法特征。有关OO的知识倒不需要太多,因为书中我会覆盖所有的内容。

还有,我当时最缺乏的,就是感觉怎么有效的使用对象,和解释这么用的理由。当时,怎么在实践中更好的部署这些应用 - 用什么工具和使用什么原理来测试这些应用,做文档,和安装,当时有些把握不住,所以现在在实践部分强调了这些问题。

这本书我是带着挑战性去写的,希望读者也带着挑战性去读。

第二版介绍(2007年11月)

PHP5出台三年来,对象和模式开发变成了主流。PHP语言自己也成熟了。同时,测试和整合的工具也在不断改善。

这段时期,很多读者发现此书对他们的工作很有帮助。原本看起来很杂乱的对象,模式,类,和组件,变得清晰,有条理了。这让我感到很高兴,因为这就是我原来要写书的初衷。

很多计算机书籍都只能在书架上放一段时间。不管这书有多经典,尤其是里面的一些代码过时的时候。因此现在也到了更新此书的时候了。

我已经更新和测试了所有的例子代码。加强了模式的描述,有关整合工具部分升级了,加了一个新章节PHPUnit。

希望此书能继续帮助读者更好的理解和使用对象与模式。

------------------------------------------------------------------

我的介绍:

此书主要有三部分:对象,模式,实践。个人感觉,此书第一部分写得最好,堪称经典。PHP优秀编程员有个很尴尬的地方,因为OO概念引进PHP的时间短,所以在PHP的OO应用方面,还得向其他OO语言的牛人学习。很多PHP牛人在书里面OO部分都讲的不清楚,不深入,不透彻;而其他OO语言的书,又不会论及如何把OO应用在PHP上。此书的第一部分,很好的填补了这个缺陷。这部分,个人建议列为学习必读篇。

在第二部分模式篇里,单就模式讲解的内容而言,个人认为目前还没有比它讲的更好的,或者更准确地说,不会比其他PHP同类型的书讲的差。但就如何在实践中应用模式方面,讲得就有点含糊了。读完之后,对模式的认识肯定会有所提高,但对于如何在实践中应用模式时,我估计,大家还得摸着石头过河。不过,这也是好事,因为大家和高手们都在同一起跑线上,哈哈。

对于第三部分实践篇,我还感觉不到这里有什么闪光的地方。当然就如同作者自己介绍说的,这都是当年他做项目时感到比较重要的部分,所以列出来了。不过与其他书相比,读者会感到这部分写的一般般。相必之下,另外一本书在这方面做的不错:<<PHP inaction>>(PHP实践),下次我会对此书作个介绍。
Don't hurry, Don't stop!

TOP

<<PHP 对象,模式与实践>>在AMAZON的评论摘录

有4个评论,5星(2人),4星(1人),3星(1人)。

---------------------------------------------------
好评:
This is the best book I've read on Object Orientated PHP. This book does a great job of explaining the ins and outs of OO in PHP 5. As a self taught PHP developer of 5 years, I had lots of questions about "am I doing this right", "how should this be done" and the book has answered most of those questions.

I'd recommend the book to those who already have an advanced PHP knowledge but are looking to take their code another step forward by improving it's re-usability. It's also a great read if you want to find out the power that PHP 5 has over PHP 4.

Note: this book doesn't contain code that you can use.  It teaches you the principles that you should use in your own projects.

简译:

这是我读到关于PHP OO方面最好的一本书。对PHP OO概念作了很透彻的解释。作为一个自学PHP,有5年经验的人,我有很多类似“我这样做对吗”,“这应该怎么做”的问题,这本书都做了很好的解答。

我推荐此书给那些已有PHP高级知识,但希望进一步改善其代码的再用性的编程员。

此书没有包含可用代码。它仅教你一些应该在你自己项目中使用的原理。

----------------------------------------------------

中评:
This is a really great book for advanced developers who want learn abount php5 OOP technique; it explain very well how objects work and how to use the most famous patterns but it fails in third section: "The Practice".

CVS, PHPDoc and Phing, for me, are not enough for a good "Practice".

The entire book use too much simplistic examples, and so, is very difficult, for a beginner, to use all book concepts in real world.

I hope that in the next edition, Matt will fill this gap.

简译:
                                                                        
对于那些想学PHP5 OOP技术的高级开发人员来说,这是一本很好的书。它对很好的解释了对象是怎么工作的,以及如果使用那些著名的设计模式。但第三部分“实践”讲的不是太好。

光是讲 CVS,PHPDoc 和 Phing,对我而言,远不是什么好“实践”。

整本书用了太多的简单化例子,对新手来讲,如何将这些概念用到实践上是满困难的。

希望下一版,作者能填上这个缺口。
Don't hurry, Don't stop!

TOP

太感谢版主了,一直给我们带来这么好的东西。
呵呵,再多介绍些原著,然后摘译其中的一些精华部分。

TOP

感谢贡献,支持分享!!!

TOP

t

TOP

继续顶贴!

TOP

下载学习,多谢goodonyou
人不能没有奋斗的目标,尽管有的时候你说不清楚你的目标是什么,但在你的心中一定得有一样让你始终坚持追求的东西,这样你才会活得充实,更有意义

TOP

这本我在译,下个月要交稿了,如果顺利今年12月前能出版。

呵呵,居然有电子版可以下载了。 这样也好,大家先看看英文版,觉得不错再看中文版。
PHP5 研究中心
http://blog.csdn.net/haohappy2004/
PHPEye开源社区
phpeye.com

TOP

感谢Haohappy老大的贡献,这部书确实不错。但说实在话,英文版本身就不太好读,这本书作者用英文写得是妙笔生花,对我们无论阅读和翻译的难度都很大,能把它翻译成中文,确实是对国内PHP界的一大贡献。而且能把同年出版的英文书翻译发行,更是难能可贵,可敬可贺。我们都很期待Haohappy朋友的书能早日面世,同时也期待。Haohappy朋友能把更多的好书翻译出来。谢谢Haohappy朋友。
Don't hurry, Don't stop!

TOP

返回列表