Book description
Learn to develop high-quality applications and frameworks in PHP
Packed with in-depth information and step-by-step guidance, this book escorts you through the process of creating, maintaining and extending sustainable software of high quality with PHP. World-renowned PHP experts present real-world case studies for developing high-quality applications and frameworks in PHP that can easily be adapted to changing business requirements. . They offer different approaches to solving typical development and quality assurance problems that every developer needs to know and master.
Details the process for creating high-quality PHP frameworks and applications that can easily be adapted to changing business requirements
Covers the planning, execution, and automation of tests for the different layers and tiers of a Web application
Demonstrates how to establish a successful development process
Shares real-world case studies from well-known companies and their PHP experts
With this book, you'll learn to develop high-quality PHP frameworks and applications that can easily be maintained with reasonable cost and effort.
Table of contents
- Copyright
- ABOUT THE AUTHORS
- CREDITS
- FOREWORD
-
INTRODUCTION
- ABOUT THIS BOOK
-
ABOUT THE CASE STUDY AUTHORS
- Robert Lemke, TYPO3 Association, and Karsten Dambekalns, TYPO3 Association
- Benjamin Eberlei, direkt:effekt GmbH
- Matthew Weier O'Phinney, Zend Technologies Ltd.
- Tobias Schlitt
- Fabien Potencier, Sensio Labs
- Kore Nordmann
- Michael Lively Jr., Selling Source LLC
- Christiane Philipps, Rebate Networks GmbH, and Max Horváth, Vodafone GmbH
- Manuel Pichler, OnVista Media GmbH, and Sebastian Nohn, Ligatus GmbH
- Lars Jankowfsky, swoodoo AG
- Jens Grochtdreis
- Brian Shire
- Arne Blankerts, thePHP.cc
- ERRATA
- P2P.WROX.COM
-
I. Foundations
-
1. Software Quality
- 1.1. EXTERNAL QUALITY
- 1.2. INTERNAL QUALITY
- 1.3. TECHNICAL DEBT
- 1.4. CONSTRUCTIVE QUALITY ASSURANCE
- 1.5. CLEAN CODE
- 1.6. SOFTWARE METRICS
-
1.7. TOOLS
- 1.7.1. PHPUnit
- 1.7.2. phploc
- 1.7.3. PHP Copy-Paste-Detector (phpcpd)
- 1.7.4. PHP Dead Code Detector (phpdcd)
- 1.7.5. PHP_Depend (pdepend)
- 1.7.6. PHP Mess Detector (phpmd)
- 1.7.7. PHP_CodeSniffer (phpcs)
- 1.7.8. bytekit-cli
- 1.7.9. PHP_CodeBrowser (phpcb)
- 1.7.10. CruiseControl and phpUnderControl
- 1.7.11. Hudson
- 1.7.12. Arbit
- 1.8. CONCLUSION
-
2. Software Testing
- 2.1. BLACK BOX AND WHITE BOX TESTS
- 2.2. HOW MANY TESTS ARE NEEDED?
- 2.3. SYSTEM TESTS
- 2.4. UNIT TESTS
-
2.5. REAL-LIFE EXAMPLE
- 2.5.1. Analyzing the Code to Test
- 2.5.2. Setting Up a Test Environment
- 2.5.3. Avoid Global Dependencies
- 2.5.4. Test Independently from Data Sources
- 2.5.5. Testing Asynchronous Events
- 2.5.6. Storing Changes in the Database
- 2.5.7. Unpredictable Results
- 2.5.8. Encapsulating Input Data
- 2.5.9. Further Reflections
- 2.6. CONCLUSION
-
1. Software Quality
-
II. Best Practices
- 3. TYPO3: The Agile Future of a Ponderous Project
-
4. Unit Testing Bad Practices
- 4.1. WHY TEST QUALITY MATTERS
- 4.2. BAD PRACTICES AND TEST SMELLS
- 4.3. CONCLUSION
- 5. Quality Assurance at Digg Inc.
- III. Servers and Services
-
IV. Architecture
- 8. Testing symfony and symfony Projects
- 9. Testing the ezcGraph Component
-
10. Testing Database Interaction
- 10.1. INTRODUCTION
- 10.2. REASONS NOT TO WRITE DATABASE TESTS
- 10.3. WHY WE SHOULD WRITE DATABASE TESTS
- 10.4. WHAT WE SHOULD TEST
- 10.5. WRITING TESTS: MOCKING DATABASE CONNECTIONS
- 10.6. WRITING TESTS: PHPUNIT DATABASE EXTENSION
- 10.7. APPLYING TEST-DRIVEN DESIGN TO DATABASE TESTING
- 10.8. USING DATABASE TESTS FOR REGRESSION TESTING
- 10.9. CONCLUSION
-
V. Q&A in the Large
-
11. Quality Assurance at studiVZ
- 11.1. INTRODUCTION
- 11.2. ACCEPTANCE TESTS
- 11.3. SELENIUM
- 11.4. THE TECHNICAL SETUP OF STUDIVZ
-
11.5. BEST PRACTICES
- 11.5.1. Sins of Our Youth
-
11.5.2. Strategy Change
- 11.5.2.1. Atomic Tests with Dynamic Test Data
- 11.5.2.2. Robust Selenium Tests
- 11.5.2.3. Test Scope Must Be Clear
- 11.5.2.4. Common Functionality or Browser Compatibility as Well?
- 11.5.2.5. Fix Tests Right Away!
- 11.5.2.6. Stabilize Locators, and Use IDs
- 11.5.2.7. Speed, the Sore Subject
- 11.5.2.8. Recipes for Last-Minute Features
- 11.5.2.9. Tests Are Software Too
- 11.5.2.10. Capture and Replay versus Programming Tests
- 11.5.2.11. The Team: a Good Mix
- 11.6. WE NEED A DSL
- 11.7. CONCLUSION
-
12. Continuous Integration
- 12.1. INTRODUCTION
- 12.2. INSTALLATION
- 12.3. CONFIGURATION
- 12.4. OPERATIONS
- 12.5. ADVANCED TOPICS
- 12.6. CONCLUSION
- 13. swoodoo: A True Agile Story
-
11. Quality Assurance at studiVZ
-
VI. Non-Functional Aspects
-
14. Usability
- 14.1. ANYTHING GOES, BUT WHAT IS THE PRICE?
-
14.2. DESIGN ASPECTS
- 14.2.1. Accessibility
- 14.2.2. Readability
- 14.2.3. Labels for Form Elements
- 14.2.4. Navigating by Keyboard
- 14.2.5. Effective Contrast
- 14.2.6. Logo Links to Home Page
- 14.2.7. Alternative Texts for Images
- 14.2.8. Background Image in Background Color
- 14.2.9. Usable Print Version
- 14.2.10. Visible Links
- 14.2.11. Good Bookmarks
- 14.2.12. No Frames
- 14.2.13. Scalable Fonts
- 14.3. TECHNICAL ASPECTS
- 14.4. USER GUIDANCE
- 14.5. TESTING USABILITY
- 14.6. CONCLUSION
- 15. Performance Testing
-
16. Security
- 16.1. WHAT IS SECURITY?
- 16.2. SECURE BY DESIGN
- 16.3. WHAT DOES SECURITY COST?
-
16.4. THE MOST COMMON PROBLEMS
- 16.4.1. A10: Unvalidated Redirects and Forwards
- 16.4.2. A9: Insufficient Transport Layer Protection
- 16.4.3. A8: Failure to Restrict URL Access
- 16.4.4. A7: Insecure Cryptographic Storage
- 16.4.5. A6: Security Misconfiguration
- 16.4.6. A5: Cross-Site Request Forgery (CSRF/XSRF)
- 16.4.7. A4: Insecure Direct Object References
- 16.4.8. A3: Broken Authentication and Session Management
- 16.4.9. A2: Cross-Site Scripting (XSS)
- 16.4.10. A1: Injection
- 16.5. CONCLUSION
- 17. Conclusion
-
BIBLIOGRAPHY
-
14. Usability
Product information
- Title: Real-World Solutions for Developing High-Quality PHP Frameworks and Applications
- Author(s):
- Release date: May 2011
- Publisher(s): Wrox
- ISBN: 9780470872499
You might also like
book
A Guide to the Project Management Body of Knowledge (PMBOK® Guide) – Seventh Edition and The Standard for Project Management (ENGLISH)
PMBOK® Guide is the go-to resource for project management practitioners. The project management profession has significantly …
book
Python Crash Course, 2nd Edition
This is the second edition of the best selling Python book in the world. Python Crash …
book
Wicked Cool Shell Scripts
Fun and functional Linux, Mac OS X and UNIX shell scripts The UNIX shell is the …
book
PHP and MySQL for Dynamic Web Sites: Visual QuickPro Guide, Fifth Edition
Learn PHP and MySQL programming— the quick and easy way! Easy visual approach uses demonstrations and …