Advanced PHP Programming (Paperback)
內容描述
Over the past three years PHP has evolved from being a niche language used to
add dynamic functionality to small sites to a powerful tool making strong
inroads into large-scale, business-critical Web systems.
The rapid maturation of PHP has created a skeptical population of users from
more traditional "enterprise" languages who question the readiness and ability
of PHP to scale, as well as a large population of PHP developers without formal
computer science backgrounds who have learned through the hands-on
experimentation while developing small and midsize applications in PHP.
While there are many books on learning PHP and developing small applications
with it, there is a serious lack of information on "scaling" PHP for
large-scale, business-critical systems. Schlossnagle¿s Advanced PHP
Programming fills that void, demonstrating that PHP is ready for enterprise
Web applications by showing the reader how to develop PHP-based applications for
maximum performance, stability, and extensibility.
Table of Contents:
Introduction.
I. IMPLEMENTATION AND DEVELOPMENT METHODOLOGIES.
- Coding Styles.
Choosing a Style That Is Right for You. Naming
Symbols. Avoiding Confusing Code. Documentation. Further Reading.
- Object-Oriented Programming through Design
Patterns.
Introduction to OO Programming. A Brief
Introduction to Design Patterns. Overloading. Further Reading.
- Error Handling.
Handling Errors. Handling External Errors.
Exceptions. When to Use Exceptions. Further Reading.
- Implementing with PHP: Templates and the Web.
Smarty. Writing Your Own Template Solution.
Further Reading.
- Implementing with PHP: Standalone Scripts.
Introduction to the PHP Command-Line Interface
(CLI). Handling Input/Output (I/O). Parsing Command-Line Arguments. Creating and
Managing Child Processes. Writing Daemons. Combining What You've Learned:
Monitoring. Services Further Reading.
- Unit Testing.
An Introduction to Unit Testing. Writing Inline
and Out-of-Line Unit Tests. Additional Features in PHPUnit. Test-Driven Design.
Unit Testing in a Web Environment. Further Reading.
- Managing the Development Environment.
Change Control. Managing Packaging. Further
Reading.
- Designing a Good API.
Design for Refactoring and Extensibility.
Defensive Coding. Further Reading.
II. CACHING.
- External Performance Tunings.
Language-Level Tunings. Cache-Friendly PHP
Applications. Content Compression. Further Reading.
- Data Component Caching.
Caching Issues. Recognizing Cacheable Data
Components. Choosing the Right Strategy: Hand-Made or Prefab Classes. Output
Buffering. In-Memory Caching. DBM-Based Caching. Shared Memory Caching.
Cookie-Based Caching. Integrating Caching into Application Code. Further
Reading.
- Computational Reuse.
Introduction by Example: Fibonacci Sequences.
Caching Reused Data Inside a Request. Caching Reused Data Between Requests.
Computational Reuse Inside PHP. Further Reading.
III. DISTRIBUTED APPLICATIONS.
- Interacting with Databases.
Understanding How Databases and Queries Work.
Database Access Patterns. Tuning Database Access. Further Reading.
- User Authentication and Session Security.
Simple Authentication Schemes. Registering
Users. Maintaining Authentication: Ensuring That You Are Still Talking to the
Same Person. Single Signon. Further Reading.
- Session Handling.
Client-Side Sessions. Server-Side Sessions.
- Building a Distributed Environment.
What Is a Cluster? Clustering Design Essentials.
Caching in a Distributed Environment. Scaling Databases. Further Reading.
- RPC: Interacting with Remote Services.
XML-RPC. SOAP. SOAP and XML-RPC Compared.
Further Reading.
IV. PERFORMANCE.
- Application Benchmarks: Testing an Entire
Application.
Passive Identification of Bottlenecks. Load
Generators. Further Reading.
- Profiling.
What Is Needed in a PHP Profiler. A Smorgasbord
of Profilers. Installing and Using APD. A Tracing Example. Profiling a Larger
Application. Spotting General Inefficiencies. Removing Superfluous
Functionality. Further Reading.
- Synthetic Benchmarks: Evaluating Code Blocks
and Functions.
Benchmarking Basics. Building a Benchmarking
Harness. Benchmarking Examples.
V. EXTENSIBILITY.
- PHP and Zend Engine Internals.
How the Zend Engine Works: Opcodes and Op
Arrays. Variables. Functions. Classes. The PHP Request Life Cycle. Further
Reading.
- Extending PHP: Part I.
Extension Basics. An Example: The Spread Client
Wrapper. Further Reading.
- Extending PHP: Part II.
Implementing Classes. Writing Custom Session
Handlers. The Streams API. Further Reading.
- Writing SAPIs and Extending the Zend Engine.
SAPIs. Modifying and Introspecting the Zend
Engine. Homework.
Index.