Jump to content
Nytro

Survive The Deep End: Zend Framework

Recommended Posts

Survive The Deep End: Zend Framework

Welcome to Surviving The Deep End, a free book about Zend Framework for the PHP programming language.

The book was written to guide readers through the metaphorical "Deep End". It's the place you find yourself in when you complete a few tutorials and scan through the Reference Guide, where you are buried in knowledge up to your neck but without a clue about how to bind it all together effectively into an application. This take on the Zend Framework offers a survival guide, boosting your understanding of the framework and how it all fits together by following the development of a single application from start to finish. I'll even throw in a few bad jokes for free.

The book is a work in progress and will soon be available to read online or download and print as PDF. In fact, every individual chapter can be downloaded individually or read online as soon as it's published. There will be no final version of the book - it's not like Zend will cease releasing new Zend Framework versions tomorrow! There will be a print edition in the near future when I figure out how that should work.

Surviving The Deep End is a free book. I rely on guilt, extortion, bad jokes, and teary eyed pleas for assistance to raise donations. That and Google ads on every page. Donations will be used to pay for the server (we're hosted on Slicehost) and the next Macbook Pro I intend purchasing later this year.

To keep up to date on the book's progress please visit or subscribe to my blog or follow TheDeepEnd on Twitter.



Table of Contents

1. Introduction

1.1. The Zend Framework
1.2. About This Book

1.2.1. Obtaining The Source Code For Chapters

1.3. Me, Me, Me!
1.4. You, You, You!

2. The Architecture of Zend Framework Applications

2.1. Introduction
2.2. The Model-View-Controller

2.2.1. The View
2.2.2. The Controller
2.2.3. The Model

2.3. In Review
2.4. Conclusion

3. The Model

3.1. Introduction
3.2. Clarifying The Model
3.3. In Programming, Fat Models Are Preferable To Size Zero Models
3.4. The Fat Stupid Ugly Controller
3.5. Controllers Are Not The Data Police
3.6. Conclusion

4. Installing The Zend Framework

4.1. Introduction
4.2. Before You Install The Framework
4.3. Getting The Zend Framework

4.3.1. Download As Compressed Archive File
4.3.2. Checkout From Subversion
4.3.3. Download As A Linux Distribution Package
4.3.4. Nightly Build Download

4.4. Post Installation

5. A Not So Simple Hello World Tutorial

5.1. Introduction
5.2. Step 1: Creating A New Local Domain
5.3. Step 2: Creating A Project Directory Structure
5.4. Step 3: Implement Application Bootstrapping
5.5. Step 4: The Only Way In, The Index File
5.6. Step 5: Adding A Default Controller and View
5.7. Conclusion

6. Standardise The Bootstrap Class With Zend_Application

6.1. Introduction
6.2. Step 1: Editing the ZFExt_Bootstrap Class
6.3. Step 2: Editing The Index and htaccess Files
6.4. Step 3: Adding The Application Configuration File
6.5. Step 4: Handling Setting Of Standard Component Defaults
6.6. Step 5: Fixing ZFExt_Bootstrap
6.7. Step 6: Integrating Application Configuration Into Resource Methods
6.8. Step 7: Optimising Autoloading Code
6.9. Allowing Zend_Loader_Autoload Load Namespaced Classes
6.10. Conclusion

7. Handling Application Errors Gracefully

7.1. Introduction
7.2. The ErrorController and Error View
7.3. Well, That Didn't Work...
7.4. Not All Errors Are Equal
7.5. Conclusion

8. Developing A Blogging Application

8.1. Introduction
8.2. Planning
8.3. Incremental Development and YAGNI
8.4. Checking Our Toolbox
8.5. This Is Not The Reference Guide

9. Implementing The Domain Model: Entries and Authors

9.1. Introduction
9.2. The Domain Model and Database Access Patterns
9.3. Exploring The Domain Objects
9.4. Exploring The Entry Data Mapper
9.5. Assessing Implementation Tools

9.5.1. Domain Objects
9.5.2. Validation And Filtering Rules
9.5.3. Database Access

9.6. Implementation

9.6.1. Adding Unit Tests For Execution
9.6.2. The Domain Objects
9.6.3. The Data Mappers
9.6.4. Lazy Loading Domain Objects
9.6.5. Preventing Duplicate Entities With An Identity Map

9.7. Conclusion

10. Setting The Design With Zend_View, Zend_Layout, HTML 5 and Yahoo! User Interface Library

10.1. Introduction
10.2. Zend_View: Object Oriented Templating

10.2.1. Layouts
10.2.2. Partials
10.2.3. View Helpers
10.2.4. Placeholders
10.2.5. Short Tags vs Full Tags

10.3. The ZFBlog Application Setup
10.4. Creating An Index Page With HTML 5
10.5. Extracting Static Markup Into A Layout
10.6. Replacing Changeable Elements With Placeholders
10.7. Improving HTML 5 Support With Custom View Helpers
10.8. Adding A Link To A Custom Stylesheet
10.9. Customising The Style
10.10. Conclusion

A. Creating A Local Domain Using Apache Virtual Hosts

A.1. Introduction
A.2. Configuring Apache With Virtual Hosts
A.3. Configuring Local HOSTS File
A.4. Conclusion

B. Performance Optimisation For Zend Framework Applications

B.1. Introduction
B.2. Avoid Premature Optimisation
B.3. Measuring Performance

B.3.1. Memory and CPU Measurement
B.3.2. Requests Per Second

B.4. Pinpointing The Cause Of Poor Performance

B.4.1. Code Profiling
B.4.2. Database Operations Analysis

B.5. General PHP Optimisation

B.5.1. Opcode Caching
B.5.2. Realpath Cache

B.6. General Zend Framework Optimisation

B.6.1. Class Loading Optimisation
B.6.2. Configuring Default Caches
B.6.3. Cache At The Right Level
B.6.4. Minimising Include Paths

B.7. HTTP Server Optimisation

B.7.1. Optimising Apache's Configuration
B.7.2. Avoiding Apache Completely

B.8. Conclusion

C. Copyright Information

C.1. Copyright
C.2. Licensing

Online:

http://www.survivethedeepend.com/zendframeworkbook/en/1.0

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...