1. Trang chủ
  2. » Công Nghệ Thông Tin

OBJECT-ORIENTED PHP ppt

210 260 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

OBJEC T-ORIE NT E D PHP OBJEC T-ORIE NT E D PHP C O N C E P T S , T E C H N I Q U E S , A N D C O D E P E T E R L A V I N ® Trying to learn the concepts of object-oriented programming using a language like C++ can be an intimidating experience. The simpler object model of PHP makes it the ideal language for an introduction to object-oriented programming. For the uninitiated, this guide to the latest version of PHP offers a speedy introduction to object-oriented programming, including a thorough explanantion of class as well as coverage of constructors, destructors, inheritance, polymorphism and interfaces. In this easy to follow guide, the author teaches by example, and couples new concepts with snippets of example code (which are available for download from the book’s companion website). With Object-Oriented PHP, you’ll learn to: • Promote code reuse by creating your own classes and using built-in classes • Customize and improve classes through inheritance • Simplify database access by developing MySQL database and result set classes • Incorporate an RSS reader into your site using only four lines of code • Use XML easily with an object-oriented approach • Employ PHP to autogenerate documentation for your code • Make thumbnail images on the fly • Replace clumsy error trapping with Exception handling • Take full advantage of advanced OO features in PHP Object-Oriented PHP will show you how to maximize PHP’s features, with much less work than you might think. With Object-Oriented PHP, you can master the basics of OOP and get up to speed on PHP in one fell swoop. A B O U T T H E A U T H O R Peter Lavin runs a web development firm based in Toronto, Canada, and he writes regularly on all things tech. He has been published in a number of magazines and online publications, including UnixReview.com, Spider Magazine and PlugIn Magazine. He is also a contributor to the forthcoming PHP Hacks (O’Reilly). ww w.nostarch.com “I L AY F L AT.” This book uses RepKover —a durable binding that won’t snap shut. TH E FI NE ST I N G E E K E N T E RTA I NM E NT ™ SHELVE IN: WEB PROGRAMMING $39.95 ($51.95 CDN) ® L E A R N T H E B A S I C S O F O B J E C T - O R I E N T E D P R O G R A M M I N G A N D P H P L E A R N T H E B A S I C S O F O B J E C T - O R I E N T E D P R O G R A M M I N G A N D P H P ® O B J E C T- O R I E N T E D P H P O B J E C T- O R I E N T E D P H P L A V I N OOPHP_02.book Page ii Friday, May 5, 2006 2:25 PM OBJECT-ORIENTED PHP Concepts, Techniques, and Code by Peter Lavin San Francisco ® OOPHP_02.book Page iii Friday, May 5, 2006 2:25 PM OBJECT-ORIENTED PHP. Copyright © 2006 by Peter Lavin. All rights reserved. No part of this work may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording, or by any information storage or retrieval system, without the prior written permission of the copyright owner and the publisher. Printed on recycled paper in the United States of America 1 2 3 4 5 6 7 8 9 10 – 09 08 07 06 No Starch Press and the No Starch Press logo are registered trademarks of No Starch Press, Inc. Other product and company names mentioned herein may be the trademarks of their respective owners. Rather than use a trademark symbol with every occurrence of a trademarked name, we are using the names only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark. Publisher: William Pollock Managing Editor: Elizabeth Campbell Associate Production Editor: Christina Samuell Cover and Interior Design: Octopod Studios Developmental Editor: William Pollock Technical Reviewer: Peter MacIntyre Copyeditors: Publication Services, Inc. and Sarah Lemaire Compositor: Riley Hoffman Proofreader: Stephanie Provines For information on book distributors or translations, please contact No Starch Press, Inc. directly: No Starch Press, Inc. 555 De Haro Street, Suite 250, San Francisco, CA 94107 phone: 415.863.9900; fax: 415.863.9950; info@nostarch.com; www.nostarch.com The information in this book is distributed on an “As Is” basis, without warranty. While every precaution has been taken in the preparation of this work, neither the author nor No Starch Press, Inc. shall have any liability to any person or entity with respect to any loss or damage caused or alleged to be caused directly or indirectly by the information contained in it. Library of Congress Cataloging-in-Publication Data Lavin, Peter. Object-oriented PHP : concepts, techniques, and code / Peter Lavin. p. cm. Includes index. ISBN 1-59327-077-1 1. PHP (Computer program language) 2. Object-oriented programming (Computer science) I. Title. QA76.73.P224L38 2006 005.1'17 dc22 2006015309 oophp_TITLE_COPY.fm Page iv Tuesday, May 16, 2006 9:32 AM BRIEF CONTENTS Acknowledgments xiii Introduction xv Chapter 1: What a Tangled Web We Weave 1 Chapter 2: Basics of Object-Oriented Programming 5 Chapter 3: Object-Oriented Features New to PHP 5 11 Chapter 4: Show a Little Class 17 Chapter 5: Mod UR Class 25 Chapter 6: The ThumbnailImage Class 35 Chapter 7: Building the PageNavigator Class 47 Chapter 8: Using the PageNavigator Class 57 Chapter 9: Database Classes 65 Chapter 10: Improvement Through Inheritance 75 Chapter 11: Advanced Object-Oriented Programming Concepts 91 Chapter 12: Keeping It Fresh 99 Chapter 13: More Magic Methods 111 Chapter 14: Creating Documentation Using the Reflection Classes 125 Chapter 15: Extending SQLite 139 Chapter 16: Using PDO 157 Appendix A: Setting Up PHP 5 165 Appendix B: Conversion Table: PHP 4 and PHP 5 169 Glossary 173 Index 179 OOPHP_02.book Page v Friday, May 5, 2006 2:25 PM OOPHP_02.book Page vi Friday, May 5, 2006 2:25 PM CONTENTS IN DETAIL ACKNOWLEDGMENTS xiii INTRODUCTION xv What Does This Book Have to Offer? xvi Who Should Read This Book? xvi Requirements xvi Software xvi Skills xvii Overview of Contents xvii Companion Website xix Resources xx Websites xx Books xx 1 WHAT A TANGLED WEB WE WEAVE 1 Do We Really Need Objects? 2 Just a Scripting Language 2 Object Orientation Is for Large Software Shops 3 Leave Well Enough Alone 3 Increased Complexity 3 The PHP Culture 4 2 BASICS OF OBJECT-ORIENTED PROGRAMMING 5 Class 6 Classes Versus Records 6 A Cohesive Whole 6 Objects Are Instances 6 Objects Need Access Modifiers 7 Object Reuse and Inheritance 7 Multiple Inheritance 8 Having Your Cake and Eating It Too 8 Where to Go from Here 9 3 OBJECT-ORIENTED FEATURES NEW TO PHP 5 11 Access Modifiers 12 Built-in Classes 12 Exceptions 12 Database Classes 13 OOPHP_02.book Page vii Friday, May 5, 2006 2:25 PM viii Contents in Detail Web Services 13 Reflection Classes 14 Iterator 14 Backward Compatibility 14 Pass By Reference 14 Prognosis 15 Where to Go from Here 15 Adoption of PHP 5 16 Compromise 16 4 SHOW A LITTLE CLASS 17 Design 18 Defining the Problem 18 Not the Da Vinci Code 19 The Constructor 19 Referencing Instance Variables 20 Wrapper Methods 20 Creating an Instance 21 What Have You Accomplished? 23 But Will It Fly? 23 5 MOD UR CLASS 25 Upgrading to PHP 5 26 Access Modifiers 26 The Constructor 28 Modifying Your Class 29 Reconstructing the Constructor 29 Filtering Content 31 Resetting the Array 32 Summary of Changes 33 6 THE THUMBNAILIMAGE CLASS 35 What Does a Designer Do? 36 Mimicking the Designer 36 Help from PHP Functions 36 The ThumbnailImage Class 37 Data Members 37 Deconstructing the Constructor 37 Two Ways to Construct an Object 38 Internal Behavior—Private Methods 39 Must It Be Private? 40 A Helper Method 40 Public Methods 41 Garbage Collection 41 OOPHP_02.book Page viii Friday, May 5, 2006 2:25 PM Contents in Detail ix Displaying the Image 41 Get and Set Methods 42 Image Quality 42 When to Change the Quality 43 Displaying a Thumbnail 44 Putting It All Together 44 Where to Go from Here 45 7 BUILDING THE PAGENAVIGATOR CLASS 47 How Will the Navigator Behave? 47 Different Kinds of Searches 48 What Will It Look Like? 48 The Code 49 The Constructor 51 Ain’t Misbehavin’ 52 Other Constructor Method Calls 52 The getNavigator Method 54 Move First and Move Previous 54 Main Body of the Navigator 55 Move Next and Move Last 56 Current and Total Number of Pages 56 Where to Go from Here 56 8 USING THE PAGENAVIGATOR CLASS 57 DirectoryItems Change 58 CSS and Reusability 58 Paging with Class 60 Displaying an Array Slice 61 Creating the PageNavigator Object 62 Where to Go from Here 63 9 DATABASE CLASSES 65 Using What You Know 65 One Lump or Two? 66 The MySQLConnect Class 66 A Class-Conscious Variable 67 Making Other Connections 68 You Can Only Get There from Here 68 The MySQLResultSet Class 69 Using the Page Navigator 70 Ordering, Filtering, and Extracting 71 Traversing the Result Set 72 Your Navigator Needs Directions 73 Where to Go After the Navigator 74 OOPHP_02.book Page ix Friday, May 5, 2006 2:25 PM x Contents in Detail 10 IMPROVEMENT THROUGH INHERITANCE 75 The Standard PHP Library 76 Extending a Class Through Inheritance 76 The Exception Class 77 protected 77 final 78 More Magic Methods 78 Replacing Errors with Exceptions 79 The MySQLException Class 80 Changes to the MySQLConnect Class 81 Prodding Your Class into Action 82 Catching Exceptions 83 Implementing an Interface 84 Learning About the Iterator Interface 85 Implementation 86 Leaving a Method Undefined 88 Implementation and Access 88 Iterating Through a MySQLResultSet 89 Where to Go from Here 89 11 ADVANCED OBJECT-ORIENTED PROGRAMMING CONCEPTS 91 Abstract Classes 91 Private Methods Can’t Be Abstract 92 Interface or Pure Abstract Class? 92 Polymorphism 93 Controlling How Functions Are Used 93 Static Classes 94 Static Math Classes 94 Instances of Static Classes 95 Preventing Instantiation of a Static Class 96 Design Patterns 96 The Singleton Pattern 96 Which Implementation? 98 Where to Go from Here 98 12 KEEPING IT FRESH 99 SimpleXML 100 XML 100 RSS 101 Structure of an RSS File 101 Reading the Feed 102 Site-Specific Search 103 Google API 104 AJAX 104 Installing SOAP 104 OOPHP_02.book Page x Friday, May 5, 2006 2:25 PM [...]... International PHP Magazine: www.phpmag.net Cutting-edge articles and news about PHP Available by subscription only PHP. net: http:/ /php. net The official PHP site, where you will find documentation and many code examples It is the primary source of information about PHP php|architect: http://phparchitect.com A monthly magazine for PHP professionals Available by subscription only Planet PHP: www.planet -php. net... Herrington (O’Reilly) php| architect’s Guide to PHP Design Patterns, by Jason Sweat (php| architect) php| architect’s Guide to PHP Security, by Ilia Alshanetsky (php| architect) Programming PHP, by Kevin Tatroe, Peter MacIntyre, and Rasmus Lerdorf (O’Reilly) Thinking in Java, by Bruce Eckel (Prentice Hall) Upgrading to PHP 5, by Adam Trachtenberg (O’Reilly) xx In t rod uc ti on OOPHP_02.book Page 1 Friday,... between PHP 4 and PHP 5 This will be particularly useful for people already familiar with the OO capabilities of PHP 4 who want an overview of the improvements B as ic s of Ob je ct -O ri en te d P rog ra mm in g 9 OOPHP_02.book Page 10 Friday, May 5, 2006 2:25 PM OOPHP_02.book Page 11 Friday, May 5, 2006 2:25 PM 3 OBJECT-ORIENTED FEATURES NEW TO PHP 5 PHP 3 was released in mid-1998 Some basic object-oriented. .. to continue writing new applications that will run under PHP 4 For this reason, wherever possible, a PHP 4 version of code has been provided in addition to the PHP 5 version In a sense, PHP 5 just formalizes what was already possible in PHP 4 For instance, even though PHP 4 allows direct access to instance variables, when creating a class in PHP 4 it makes sense to write accessor methods for variables... more and more uses for it 3 See Rasmus Lerdorf, “Do You PHP? ” available at www.oracle.com/technology/pub/articles/ php_ experts/rasmus _php. html (Accessed March 14, 2006.) 4 C h a pt er 1 OOPHP_02.book Page 5 Friday, May 5, 2006 2:25 PM 2 BASICS OF OBJECT-ORIENTED PROGRAMMING This chapter is aimed at an audience unfamiliar with the basic concepts of object-oriented programming (OOP) The intent is to provide... about PHP Zend: www.zend.com Information about Zend products, but also many good tutorials by the creators of the scripting engine that underlies PHP Books Essential PHP Security, by Chris Shiflett (O’Reilly) Learning XML, by Erik T Ray (O’Reilly) PHP 5 Power Programming, by Andi Gutmans, Stig Bakken, and Derick Rethans (Prentice Hall) PHP Cookbook, by David Sklar and Adam Trachtenberg (O’Reilly) PHP. .. always been about solving web problems A quick look at the culture of PHP should convince you that PHP is unlikely to develop into an overly complex language The PHP Culture Culture is not something that is usually associated with a programming language, but looking at the culture of PHP will help you understand PHP s implementation of OOP PHP is an open-source language created more than 10 years ago by... are noted in the text), all the code in this book will run on PHP 5.0.4 and higher The PHP 4 code will run just fine under PHP 5 but will issue warnings if error reporting is set to E_STRICT (See Appendix A for more information about this new error reporting level.) xvi I n tr odu ct ion OOPHP_02.book Page xvii Friday, May 5, 2006 2:25 PM PHP is available for virtually any operating system, so there... capabilities of PHP 4 reinforced the view that a scripting language shouldn’t attempt to be object-oriented PHP 4 looked like a half-hearted attempt to jump on the OO bandwagon Because it was missing some of the major elements associated with OOP, it was easy to dismiss OO PHP as a wannabe OO language It simply lacked the tools of a serious OO language In light of the much-improved OO capabilities of PHP 5,... Fear of PHP becoming overly complex is often a more subtly stated objection to an OO PHP There’s no doubt that OOP can sometimes introduce Wha t a Ta n gl ed Web We We av e 3 OOPHP_02.book Page 4 Friday, May 5, 2006 2:25 PM unwanted complexity—just look at multiple inheritance in C++ or Enterprise Java, for example This hasn’t happened with PHP, and there’s good reason to suspect that it won’t PHP is . Herrington (O’Reilly) php| architect’s Guide to PHP Design Patterns, by Jason Sweat (php| architect) php| architect’s Guide to PHP Security, by Ilia Alshanetsky (php| architect) Programming PHP, by Kevin. here. Websites International PHP Magazine: www.phpmag.net Cutting-edge articles and news about PHP. Available by subscription only. PHP. net: http:/ /php. net The official PHP site, where you will find. source of information about PHP. php| architect: http://phparchitect.com A monthly magazine for PHP professionals. Available by subscription only. Planet PHP: www.planet -php. net Links to articles

Ngày đăng: 27/06/2014, 12:20

Xem thêm: OBJECT-ORIENTED PHP ppt

TỪ KHÓA LIÊN QUAN

Mục lục

    Object-oriented PHP : concepts, techniques, and code

    Chapter 1: What a Tangled Web We Weave

    Chapter 2: Basics of Object-Oriented Programming

    Chapter 3: Object-Oriented Features New to PHP 5

    Chapter 4: Show a Little Class

    Chapter 5: Mod UR Class

    Chapter 6: The ThumbnailImage Class

    Chapter 7: Building the PageNavigator Class

    Chapter 8: Using the PageNavigator Class

    Chapter 10: Improvement Through Inheritance

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w