Book Image

Test-Driven Development with PHP 8

By : Rainier Sarabia
Book Image

Test-Driven Development with PHP 8

By: Rainier Sarabia

Overview of this book

PHP web developers end up building complex enterprise projects without prior experience in test-driven and behavior-driven development which results in software that’s complex and difficult to maintain. This step-by-step guide helps you manage the complexities of large-scale web applications. It takes you through the processes of working on a project, starting from understanding business requirements and translating them into actual maintainable software, to automated deployments. You’ll learn how to break down business requirements into workable and actionable lists using Jira. Using those organized lists of business requirements, you’ll understand how to implement behavior-driven development (BDD) and test-driven development (TDD) to start writing maintainable PHP code. You’ll explore how to use the automated tests to help you stop introducing regressions to an application each time you release code by using continuous integration. By the end of this book, you’ll have learned how to start a PHP project, break down the requirements, build test scenarios and automated tests, and write more testable and maintainable PHP code. By learning these processes, you’ll be able to develop more maintainable, and reliable enterprise PHP applications.
Table of Contents (17 chapters)
Part 1 – Technical Background and Setup
Part 2 – Implementing Test-Driven Development in a PHP Project
Part 3 – Deployment Automation and Monitoring

What this book covers

Chapter 1, What is Test-Driven Development and Why Use it in PHP?, Goes through the definition of TDD, what problem it tries to solve, what are the benefits of PHP and what we developers will get from implementing it. This chapter will also make you understand the value of TDD in large projects and how it helps reduce regressions.

Chapter 2, Understanding and Organizing the Business Requirements of Our Project, explains how to interpret business requirements into an organized list. The list can be used to help developers prioritize and determine what features we need to build, and which features we need to build first.

Chapter 3, Setting Up Our Development Environment Using Docker Containers, is all about Docker containers for development. Using containers will help developers get more consistent application setups in different server environments.

Chapter 4, Using Object-Oriented Programming in PHP, goes through the Object-Oriented Programming (OOP) concept in PHP. Understanding OOP in PHP is crucial for implementing TDD, and BDD.

Chapter 5, Unit Testing, covers the basics of unit testing. The lessons learned in this chapter will be the foundations for the concepts that will be discussed in applying TDD and BDD in the following chapters.

Chapter 6, Applying Behavior-Driven Development, provides an introduction to the process of BDD. The BDD process will help software developers ensure that the expected behavior of a software product is achieved.

Chapter 7, Building Solution Code with BDD and TDD, demonstrates how to use BDD and TDD together. Implementing BDD and TDD together will help ensure that the expected behavior is delivered, and it will also help increase the reliability of the software being produced.

Chapter 8, Using TDD with SOLID Principles, involves following the SOLID principles in a project. This will help developers implement the SOLID principles while following TDD in a more realistic use scenario.

Chapter 9, Continuous Integration, details Continous Integration (CI) for test execution. CI is used to help merge reliable code to the master branch of a project by making sure that all automated tests pass first.

Chapter 10, Continuous Delivery, discusses using Continuous Delivery (CD) to automate the release process. Going further than CI, we will automate the deployment process of the product.

Chapter 11, Monitoring, unpacks how to use monitoring tools for deployed applications. Applications running in production will need to be maintained and having monitoring tools help developers to get on top of possible issues in production.