Siêu thị PDFTải ngay đi em, trời tối mất

Thư viện tri thức trực tuyến

Kho tài liệu với 50,000+ tài liệu học thuật

© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Advanced PHP Programming
PREMIUM
Số trang
104
Kích thước
905.2 KB
Định dạng
PDF
Lượt xem
1842

Advanced PHP Programming

Nội dung xem thử

Mô tả chi tiết

Advanced PHP

Programming

This page intentionally left blank

Advanced PHP

Programming

Sams Publishing, 800 East 96th Street, Indianapolis, Indiana 46240 USA

DEVELOPER’S

LIBRARY

A practical guide to developing large-scale

Web sites and applications with PHP 5

George Schlossnagle

Advanced PHP Programming

Copyright © 2004 by Sams Publishing

All rights reserved. No part of this book shall be reproduced, stored

in a retrieval system, or transmitted by any means, electronic,

mechanical, photocopying, recording, or otherwise, without written

permission from the publisher. No patent liability is assumed with

respect to the use of the information contained herein.Although

every precaution has been taken in the preparation of this book, the

publisher and author assume no responsibility for errors or omis￾sions. Nor is any liability assumed for damages resulting from the use

of the information contained herein.

International Standard Book Number: 0-672-32561-6

Library of Congress Catalog Card Number: 2003100478

Printed in the United States of America

First Printing: March 2004

06 05 4 3

Trademarks

All terms mentioned in this book that are known to be trademarks

or service marks have been appropriately capitalized. Sams

Publishing cannot attest to the accuracy of this information. Use of a

term in this book should not be regarded as affecting the validity of

any trademark or service mark.

Warning and Disclaimer

Every effort has been made to make this book as complete and as

accurate as possible, but no warranty or fitness is implied.The infor￾mation provided is on an “as is” basis.The author and the publisher

shall have neither liability nor responsibility to any person or entity

with respect to any loss or damages arising from the information

contained in this book.

Bulk Sales

Pearson offers excellent discounts on this book when ordered in

quantity for bulk purchases or special sales. For more information,

please contact

U.S. Corporate and Government Sales

1-800-382-3419

[email protected]

For sales outside of the U.S., please contact

International Sales

[email protected]

Acquisitions Editor

Shelley Johnston

Development Editor

Damon Jordan

Managing Editor

Charlotte Clapp

Project Editor

Sheila Schroeder

Copy Editor

Kitty Jarrett

Indexer

Mandie Frank

Proofreader

Paula Lowell

Technical Editors

Brian France

Zak Greant

Sterling Hughes

Publishing Coordinator

Vanessa Evans

Interior Designer

Gary Adair

Cover Designer

Alan Clements

Page Layout

Michelle Mitchell

Contents v

Contents at a Glance

Introduction

I Implementation and Development

Methodologies

1 Coding Styles

2 Object-Oriented Programming Through Design

Patterns

3 Error Handling

4 Implementing with PHP:Templates and the Web

5 Implementing with PHP: Standalone Scripts

6 Unit Testing

7 Managing the Development Environment

8 Designing a Good API

II Caching

9 External Performance Tunings

10 Data Component Caching

11 Computational Reuse

III Distributed Applications

12 Interacting with Databases

13 User Authentication and Session Security

14 Session Handling

15 Building a Distributed Environment

16 RPC: Interacting with Remote Services

vi Contents

IV Performance

17 Application Benchmarks:Testing an Entire

Application

18 Profiling

19 Synthetic Benchmarks: Evaluating Code Blocks and

Functions

V Extensibility

20 PHP and Zend Engine Internals

21 Extending PHP: Part I

22 Extending PHP: Part II

23 Writing SAPIs and Extending the Zend Engine

Index

Contents vii

Table of Contents

Introduction 1

I Implementation and Development

Methodologies

1 Coding Styles 9

Choosing a Style That Is Right for You 10

Code Formatting and Layout 10

Indentation 10

Line Length 13

Using Whitespace 13

SQL Guidelines 14

Control Flow Constructs 14

Naming Symbols 19

Constants and Truly Global Variables 21

Long-Lived Variables 22

Temporary Variables 23

Multiword Names 24

Function Names 24

Class Names 25

Method Names 25

Naming Consistency 25

Matching Variable Names to Schema Names 26

Avoiding Confusing Code 27

Avoiding Using Open Tags 27

Avoiding Using echo to Construct HTML 27

Using Parentheses Judiciously 28

Documentation 29

Inline Comments 29

API Documentation 30

Further Reading 35

viii Contents

2 Object-Oriented Programming Through

Design Patterns 37

Introduction to OO Programming 38

Inheritance 40

Encapsulation 41

Static (or Class) Attributes and Methods 41

Special Methods 42

A Brief Introduction to Design Patterns 44

The Adaptor Pattern 44

The Template Pattern 49

Polymorphism 50

Interfaces and Type Hints 52

The Factory Pattern 54

The Singleton Pattern 56

Overloading 58

SPL 63

__call() 68

__autoload() 70

Further Reading 71

3 Error Handling 73

Handling Errors 75

Displaying Errors 76

Logging Errors 77

Ignoring Errors 78

Acting On Errors 79

Handling External Errors 80

Exceptions 83

Using Exception Hierarchies 86

A Typed Exceptions Example 88

Cascading Exceptions 94

Handling Constructor Failure 97

Installing a Top-Level Exception Handler 98

Data Validation 100

When to Use Exceptions 104

Further Reading 105

Contents ix

4 Implementing with PHP:Templates

and the Web 107

Smarty 108

Installing Smarty 109

Your First Smarty Template: Hello World! 110

Compiled Templates Under the Hood 111

Smarty Control Structures 111

Smarty Functions and More 114

Caching with Smarty 117

Advanced Smarty Features 118

Writing Your Own Template Solution 120

Further Reading 121

5 Implementing with PHP: Standalone

Scripts 123

Introduction to the PHP Command-Line Interface

(CLI) 125

Handling Input/Output (I/O) 125

Parsing Command-Line Arguments 128

Creating and Managing Child Processes 130

Closing Shared Resources 131

Sharing Variables 132

Cleaning Up After Children 132

Signals 134

Writing Daemons 138

Changing the Working Directory 140

Giving Up Privileges 140

Guaranteeing Exclusivity 141

Combining What You’ve Learned: Monitoring

Services 141

Further Reading 150

6 Unit Testing 153

An Introduction to Unit Testing 154

Writing Unit Tests for Automated Unit

Testing 155

Writing Your First Unit Test 155

Adding Multiple Tests 156

Tải ngay đi em, còn do dự, trời tối mất!