Professional PHP 6:
Gespeichert in:
Hauptverfasser: | , , |
---|---|
Format: | Buch |
Sprache: | English |
Veröffentlicht: |
Indianapolis, IN
Wiley Pub.
2009
|
Schlagworte: | |
Online-Zugang: | Inhaltsverzeichnis |
Beschreibung: | Includes index. |
Beschreibung: | XXXIV, 703 S. |
ISBN: | 9780470395097 |
Internformat
MARC
LEADER | 00000nam a2200000zc 4500 | ||
---|---|---|---|
001 | BV035440767 | ||
003 | DE-604 | ||
005 | 20090508 | ||
007 | t | ||
008 | 090420s2009 xxu |||| 00||| eng d | ||
010 | |a 2009004148 | ||
020 | |a 9780470395097 |c pbk. |9 978-0-470-39509-7 | ||
035 | |a (OCoLC)295002233 | ||
035 | |a (DE-599)BVBBV035440767 | ||
040 | |a DE-604 |b ger |e aacr | ||
041 | 0 | |a eng | |
044 | |a xxu |c US | ||
049 | |a DE-Aug4 | ||
050 | 0 | |a QA76.73.P224 | |
082 | 0 | |a 006.7/6 | |
084 | |a ST 250 |0 (DE-625)143626: |2 rvk | ||
100 | 1 | |a Lecky-Thompson, Ed |e Verfasser |4 aut | |
245 | 1 | 0 | |a Professional PHP 6 |c Ed Lecky-Thompson, Steven D. Nowicki, Thomas Myer |
264 | 1 | |a Indianapolis, IN |b Wiley Pub. |c 2009 | |
300 | |a XXXIV, 703 S. | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
500 | |a Includes index. | ||
650 | 7 | |a PHP (langage de programmation) |2 ram | |
650 | 7 | |a Programmation sur Internet |2 ram | |
650 | 4 | |a PHP (Computer program language) | |
650 | 4 | |a Web sites |x Design | |
700 | 1 | |a Nowicki, Stephen |e Verfasser |4 aut | |
700 | 1 | |a Myer, Thomas |e Verfasser |4 aut | |
856 | 4 | 2 | |m HBZ Datenaustausch |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=017361030&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
999 | |a oai:aleph.bib-bvb.de:BVB01-017361030 |
Datensatz im Suchindex
_version_ | 1804138887308640256 |
---|---|
adam_text | Titel: Professional PHP 6
Autor: Lecky-Thompson, Ed
Jahr: 2009
Contents
Introduction xxix
Part I: Fundamentals of Professional Development
Chapter 1: Introduction to Object-Oriented Programming 3
What Is Object-Oriented Programming? 3
OOP Advantages 4
A Real-World Example 4
Understanding OOP Concepts 5
Classes 6
Objects 6
Inheritance 15
Interfaces 25
Encapsulation 27
Changes to 00 in PHP6 29
Summary 30
Chapter 2: Unified Modeling Language (UML) 31
Requirements Gathering 31
Interviewing the Client 32
Use Case Diagrams 33
Class Diagrams 35
Modeling the Domain 35
Relationships 37
Implementation 39
Activity Diagrams 42
Sequence Diagrams 44
State Diagrams 46
Component and Deployment Diagrams 47
Summary 48
Contents
Chapter 3: Putting Objects to Work 49
Creating the Contact Manager 49
The Contact Manager UML Diagrams 50
The PropertyObject Class 56
The Contact Type Classes 58
The DataManager Class 62
The Entity, Individual, and Organization Classes 64
Making Use of the System 71
Summary 74
Chapter 4: Design Patterns 75
The Composite Pattern 76
Implementation 78
Considerations 82
The Observer Pattern 83
Widgets 84
Considerations 89
The Decorator Pattern 89
Implementation 92
Using the Decorator 93
Considerations 94
The Facade Pattern 95
The Builder Pattern 96
Implementation 97
Considerations 100
Summary 100
Chapter 5: Collections 103
I Purpose of the Collection Class 103
Designing the Collection Class 105
Collection Class Basics 106
The addltem Method 106
The removeltem and getltem Methods 107
Other Methods 108
Using the Collection Class 108
Implementing Lazy Instantiation 109
Callbacks 110
The setLoadCallback Method in the Collection Class 115
Using the Collection Class U9
Improving the Collection Class 125
Summary 126
Contents ;
Chapter 6: Database Abstraction with PDO 127 j
PHP and Databases 128
PHP s Database Support 128 ¦
PHP and PostgreSQL 128
Recap 129 I
The Problem 132 j
Wrapper Classes 133 ;
Summing Up 134 :
Database Abstraction 134 l
What s Needed 134
Introducing PDO 135
Getting Started with PDO 135 ;
Working with PDO 136
The PDO Class 137
Executing Queries 138
The PDOStatement Class 139
Prepared Statements 139
Write-Only Statements 141
Transactions and Committals 142
Constants 143
Handling Errors 143
Advanced PDO Techniques 145
Large Objects 146
Database-Specific Functions 147
Persistent Connections 147 f
Stored Procedures 148 ;
Singleton Instantiation 149
Limitations of PDO 150
Query Syntax 150
Feature Emulation 150 I
Non-SQL Data Sources 151 I
Beyond PDO 151 j
Summary 152 j
j
Part II: Learning Advanced Development Techniques (
Chapter 7: Object Relation Mapping 155
Types of Classes 155
Utility Classes 156
Business Classes 156
Contents
Business Objects in Detail 157
The Design 157
Prototyping 1^8
Adding Data Binding 160
A Working Business Object 162
Ensuring Requirements Are Met 166
Understanding How It Works 169
Limitations 172
A Smarter Approach 173
Lazy Instantiation 173
Property Monitoring 173
Reusability 173
DataBoundObject Class 173
Design 174
The Code 175
Example Implementation 178
Understanding How It Works 180
Benefits 184
Summary 185
Chapter 8: Event-Driven Programming 187
Understanding Events 187
Using OOP to Handle Events 188
Designing an Event-Driven Solution 189
Implementing the Solution 191
Implementing Security 196
Pausing for Thought 198
Summary 199
Chapter 9: Logging and Debugging 201
Creating a Logging Mechanism 201
Simple File Logging 201
Example File System Layout 202
The Logger Class 203
Extending the Logger Class 208
Creating a Debugging Mechanism 219
Summary 223
Contents
Chapter 10: Writing and Using Web Services 225
SOAP 226
SOAP and PHP6 226 j
The PHP6 SOAP Extension 227 ¦
Making a SOAP Client 230
Looking Under the Hood 232 I
Exception Handling in the SOAP Client 239 I
Making a SOAP Server 240
Creating and Registering Functions 240 |
Creating the WSDL Document 241 !
REST 243
REST and PHP6 244
Implementing the REST Client 244
Making a REST Server 245
Summary 246
f
Chapter 11: Communicating with Users 247 |
Why Communicate? 247
Reasons to Communicate with Users 248
Thinking Outside the Web Browser 250
Types of Communication 250
All Communications Have . . . 250
Not All Communications Have . . . 251
What About Recipients? 251 {
Communication As a Class Hierarchy 251
The Recipient Class: A Quick Test of OOP-Like Thinking 252
The Communication Class 255
E-mailing Your Users 259
Building a Test Version 259
Getting the Message Across 263
Being Smart with Templates 268
Using MIME 270
Other Communication Subclasses 270
SMS Text Messaging 270
Fax 271
Other Considerations 271
Blocking Activity 271
Deliverability 272
Summary 274
Contents
Chapter 12: Sessions and Authentication 275
Introduction to Sessions 276
How HTTP Works 276
Definition of a Session 278
Perpetuation of a Session 279
Session Security 281
Good Session Practice 285
How PHP Implements Sessions 287
Basic PHP Sessions 288
Limitations of Basic PHP Sessions 290
Creating an Authentication Class 290
Connecting PHP Session Management to a Database 290
Introducing the HTTPSession Class 292
Database Schema 292
The Code: HTTPSession.phpm 293
The Code: Testing the HTTPSession Class 297
How the HTTPSession Class Works 300
Performance Considerations 302
Putting It All Together 304
Summary 304
Chapter 13: Application Architecture 305
Introducing MVC 306
The Model 306
The View 307
The Controllers 307
MVC in Web Applications 308
MVC in PHP 309
The MVC Mini Toolkit 311
Introducing the Toolkit 311
Using the Toolkit 324
A Word about PRG 331
The Toolkit in the Wild 332
True Templating 333
Recapping Native PHP Templating 333
The Pitfalls of Native Templating 333
True Templating with Smarty Templates 334
Installing Smarty 334
Using Smarty 305
Contents
Advanced Smarty 340
When to Use Smarty vs. Traditional Templating 342
A Spot of Modeling Work 343
Introducing Unit Testing 343
Introduction to PHPUnit 346
Why Bother? 351
Summary 352
Chapter 14: PHP Application Frameworks 355
Introduction to Frameworks 355
Application Structure 356
Separation of Code and Display Logic 356
Validation 357
URL Rewriting 357
Form Persistence 358 |
Object Relation Mapping 358 |
Database Abstraction 359 ¦
Utility Classes 359 j
Use Case Scenario 359 j
Underlying Database 360
An Example Application 361
Introducing Ulysses 361
Installing Ulysses 361
Working with Ulysses 363 j
Setting Up 363 j
Business Objects 364 j
Servlets 366 j
Processing User Input 371
Persistence 372
Validation 373
A Quick Check 374
Saving Input 374
Heading Home 375
A Quick Summary 375
Some Other Contenders 377
Prado 377
Zend Framework 378
Deployment Considerations 379
Summary 380
Contents
Part III: A Real-World Case Study
Chapter 15; Project Overview 383
Widget World 384
The Widget World Landscape 386
The Technical Layer 386
The Financial Layer 386
The Political Layer 386
You 387
Is It Really About Technology? 387
The Development Approach 387
What This Means to You 389
The Technology 391
Summary 392
Chapter 16: Project Management 393
Do Your Homework 394
Why Is the Project Happening? 394
Who Is the Project For? 394
What Is the History of the Project? 396
What Are the Anticipated Prerequisites of the Project? 397
Receiving the Formal Brief 397
Business Requirements 398
Scope 399
Timelines 400
Budget 401
Commercial Terms 403
Future Plans 404
Look and Feel 404
Technology 405
Support 405
What Now? 405
Constructing the Pitch 406
Pitches Versus Quotes 406
Pitches Versus Specifications 406
Who to Involve When Pitching 407
When to Go the Extra Mile 408
When to Say No 408
Structuring the Pitch 409
Contents
Choosing Your People 410
Project Manager 410
Account Manager 411
Lead Architect 411
Software Architects and Engineers 412 i
Client-Side Developers 412 i
Information Architects 412 j
Senior Designers 413 j
Studio Artists 413
Doubling Up of Roles 413
Working Practices 413
Your Client s Role 414
Summary 414
Chapter 17: Project Planning 415
Choosing a Process 415
The Waterfall Process 416
The Spiral Process 417 i
Making the Decision 419
Common Process Practices 419
Specification Phase 419
Design Phase 422
Build Phase 424
Testing Phase 424
Handover 425
Programming Methodologies and Practices 425 j
Test-Driven Development 425 j
Extreme Programming 426
Change Management 428
Specification Revisions 428
Specification Changes That Arise After Sign-Off 429
Disputes Arising from Differences in Interpretation 429
Bugs Reported by the Client 429
Summary 430
Chapter 18: Systems Architecture 431
What Is Systems Architecture? 431
Why Is It Important? 432
What Needs to be done? 432
Contents
Determining Business Requirements 433
Determining Hardware Requirements 434
Web Servers 434
Database Servers 434
Load Balancing 435
Firewall 436
Understanding the Physical Environment and Connectivity 436
Calculating CIR 437
Calculating Monthly Transfer 438
Rack Space Considerations 438
Network Considerations 438
Storage Considerations 439
Managing Maintenance 439
Summary 439
Chapter 19: Building the Application 441
Starting the Project: Monday 441
Getting an Earful 442
Story Weight Estimation 444
Release Planning 450
Starting the Work 451
Outlining the Details of Story 9 451
Writing Tests 452
PHPUnit 453
Creating the Login Screen 460
The Next Story 464
Re-estimating 474
Cleaning Up 475
Refactoring Code 476
Finishing the Iteration 483
Story 14: Changing the Week Recalls a Previous Week 483
Story 15: Per-Week Items on the Customer Contact Report 484
Travel Expense Report 492
Travel Expense Item 494
Travel Expense Week 496
The Spike 499
More Travel Expense Week Tests 500
Satisfying the Travel Expense Week Tests 502
The Finalized Travel Expense Report 514
Mock Objects 529
Summary 533
wit
Contents j
Chapter 20: Quality Assurance and Testing 535
Introduction to QA 535
Why You Should Aim High 536 ¦
What Is Quality? . 537
Measurable and Quantifiable Quality 538
Testing 540 |
Unit testing 540 j
Functional Testing 541
Load Testing 542
Usability Testing 543 J
Fault Tracking 543
Effective Fault Management Using Mantis 544
Getting the Most out of Mantis 554 j
Summary 554 j
j
Chapter 21: Deployment 555 {
Devising Development Environments 555
The Studio Development Environment 556
The Studio Staging Environment 557
The Live Staging Environment 557
The Live Production Environment 559
Development Databases 559 I
The Deployment Workflow 560 |
Automated Version Control Repository Extraction 562 j
Using rsync 564 f
Keeping Servers in Sync with rsync 566 j
A Word About FTP 567 I
Summary 567
Part IV: Pushing PHP to Its Limits
Chapter 22: Content Management in the PHP World 571
What Is Content Management? 571
A Brief History of Content Management 573
Examples of PHP CMSs 575
Drupal 575
Joomla! 578
ExpressionEngine 580
Frog CMS 583
uontents
Building Your Own System 585
Content-Related Issues 586
Administrators and Privileges 588
Workflow 589
Templates 590
Summary 591
Chapter 23: Handling High Traffic and High Availability 593
Understanding the Terms 593
High Availability 594
High Traffic 594
Platforms 595
Exterior Network 595
Interior Network 596
Hardware 597
Operating System 598
Web Server 598
Application Server 599
Database 599
Software Architecture 600
Impact Factors 601
Server Load 601
Component Failure 602
Network Load 602
Network Failure 602
Mitigation Techniques 603
Load Balancing 603
Geographic Balancing 605
NIC Teaming 606
Disk Fault Tolerance 606
Power Redundancy 507
Multi-segment Topologies 608
Database Clustering and Replication 610
Traffic Calculus g-j^
Caching 613
Content Generation g^4
Asset Servers g^5
Content Delivery Networks 5^5
Real-World Examples gl5
Flickr 616
Wikipedia g^g
Summary g^g
xxvi
Contents
Chapter 24: PHP Advocacy 619
Low Overhead 619
Linguistic Simplicity 621
Weakly Typed Languages 621
Reduced Punctuation 621
Commonly Understood Syntax 622
Cross-Platform Support 622
Ubiquity 624 j
Power 624 j
Summary 625 j
Chapter 25: Your Career As a PHP Professional 627
I
Motivation 627
Your Career As a Developer 628
More Than Web Development Skills 628
Soft Skills 629
Academic Skills 630
Community Skills 630
Summary 631
Part V: Appendixes
Appendix A: Version Control 635
Appendix B: PHP IPEs 647
Appendix C: Performance Tuning PHP 659
Appendix D: Best Practice PHP Installation 671
index 681
|
any_adam_object | 1 |
author | Lecky-Thompson, Ed Nowicki, Stephen Myer, Thomas |
author_facet | Lecky-Thompson, Ed Nowicki, Stephen Myer, Thomas |
author_role | aut aut aut |
author_sort | Lecky-Thompson, Ed |
author_variant | e l t elt s n sn t m tm |
building | Verbundindex |
bvnumber | BV035440767 |
callnumber-first | Q - Science |
callnumber-label | QA76 |
callnumber-raw | QA76.73.P224 |
callnumber-search | QA76.73.P224 |
callnumber-sort | QA 276.73 P224 |
callnumber-subject | QA - Mathematics |
classification_rvk | ST 250 |
ctrlnum | (OCoLC)295002233 (DE-599)BVBBV035440767 |
dewey-full | 006.7/6 |
dewey-hundreds | 000 - Computer science, information, general works |
dewey-ones | 006 - Special computer methods |
dewey-raw | 006.7/6 |
dewey-search | 006.7/6 |
dewey-sort | 16.7 16 |
dewey-tens | 000 - Computer science, information, general works |
discipline | Informatik |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>01434nam a2200409zc 4500</leader><controlfield tag="001">BV035440767</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20090508 </controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">090420s2009 xxu |||| 00||| eng d</controlfield><datafield tag="010" ind1=" " ind2=" "><subfield code="a">2009004148</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9780470395097</subfield><subfield code="c">pbk.</subfield><subfield code="9">978-0-470-39509-7</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)295002233</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV035440767</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">aacr</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="044" ind1=" " ind2=" "><subfield code="a">xxu</subfield><subfield code="c">US</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-Aug4</subfield></datafield><datafield tag="050" ind1=" " ind2="0"><subfield code="a">QA76.73.P224</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">006.7/6</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 250</subfield><subfield code="0">(DE-625)143626:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Lecky-Thompson, Ed</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Professional PHP 6</subfield><subfield code="c">Ed Lecky-Thompson, Steven D. Nowicki, Thomas Myer</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Indianapolis, IN</subfield><subfield code="b">Wiley Pub.</subfield><subfield code="c">2009</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XXXIV, 703 S.</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="500" ind1=" " ind2=" "><subfield code="a">Includes index.</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">PHP (langage de programmation)</subfield><subfield code="2">ram</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Programmation sur Internet</subfield><subfield code="2">ram</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">PHP (Computer program language)</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Web sites</subfield><subfield code="x">Design</subfield></datafield><datafield tag="700" ind1="1" ind2=" "><subfield code="a">Nowicki, Stephen</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="700" ind1="1" ind2=" "><subfield code="a">Myer, Thomas</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">HBZ Datenaustausch</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=017361030&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="999" ind1=" " ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-017361030</subfield></datafield></record></collection> |
id | DE-604.BV035440767 |
illustrated | Not Illustrated |
indexdate | 2024-07-09T21:35:20Z |
institution | BVB |
isbn | 9780470395097 |
language | English |
lccn | 2009004148 |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-017361030 |
oclc_num | 295002233 |
open_access_boolean | |
owner | DE-Aug4 |
owner_facet | DE-Aug4 |
physical | XXXIV, 703 S. |
publishDate | 2009 |
publishDateSearch | 2009 |
publishDateSort | 2009 |
publisher | Wiley Pub. |
record_format | marc |
spelling | Lecky-Thompson, Ed Verfasser aut Professional PHP 6 Ed Lecky-Thompson, Steven D. Nowicki, Thomas Myer Indianapolis, IN Wiley Pub. 2009 XXXIV, 703 S. txt rdacontent n rdamedia nc rdacarrier Includes index. PHP (langage de programmation) ram Programmation sur Internet ram PHP (Computer program language) Web sites Design Nowicki, Stephen Verfasser aut Myer, Thomas Verfasser aut HBZ Datenaustausch application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=017361030&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis |
spellingShingle | Lecky-Thompson, Ed Nowicki, Stephen Myer, Thomas Professional PHP 6 PHP (langage de programmation) ram Programmation sur Internet ram PHP (Computer program language) Web sites Design |
title | Professional PHP 6 |
title_auth | Professional PHP 6 |
title_exact_search | Professional PHP 6 |
title_full | Professional PHP 6 Ed Lecky-Thompson, Steven D. Nowicki, Thomas Myer |
title_fullStr | Professional PHP 6 Ed Lecky-Thompson, Steven D. Nowicki, Thomas Myer |
title_full_unstemmed | Professional PHP 6 Ed Lecky-Thompson, Steven D. Nowicki, Thomas Myer |
title_short | Professional PHP 6 |
title_sort | professional php 6 |
topic | PHP (langage de programmation) ram Programmation sur Internet ram PHP (Computer program language) Web sites Design |
topic_facet | PHP (langage de programmation) Programmation sur Internet PHP (Computer program language) Web sites Design |
url | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=017361030&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT leckythompsoned professionalphp6 AT nowickistephen professionalphp6 AT myerthomas professionalphp6 |