Book Image

Modular Programming with PHP 7

By : Branko Ajzele
Book Image

Modular Programming with PHP 7

By: Branko Ajzele

Overview of this book

Modular design techniques help you build readable, manageable, reusable, and more efficient codes. PHP 7, which is a popular open source scripting language, is used to build modular functions for your software. With this book, you will gain a deep insight into the modular programming paradigm and how to achieve modularity in your PHP code. We start with a brief introduction to the new features of PHP 7, some of which open a door to new concepts used in modular development. With design patterns being at the heart of all modular PHP code, you will learn about the GoF design patterns and how to apply them. You will see how to write code that is easy to maintain and extend over time with the help of the SOLID design principles. Throughout the rest of the book, you will build different working modules of a modern web shop application using the Symfony framework, which will give you a deep understanding of modular application development using PHP 7.
Table of Contents (19 chapters)
Modular Programming with PHP 7
Credits
About the Author
About the Reviewer
www.PacktPub.com
Preface
Free Chapter
1
Ecosystem Overview
Index

Unit testing


The FoggylineShipmentBundle module is quite simple. By providing only two simple services and two simple controllers, it's easy to test.

We will start off by adding the following line under the testsuites element of our phpunit.xml.dist file:

<directory>src/Foggyline/ShipmentBundle/Tests</directory>

With that in place, running the phpunit command from root of our shop should pick up any test we have defined under the src/Foggyline/ShipmentBundle/Tests/ directory.

Now, let's go ahead and create a test for our FlatRateShipment service. We will do so by creating a src/Foggyline/ShipmentBundle/Tests/Service/FlatRateShipmentTest.php file, with content as follows:

namespace Foggyline\ShipmentBundle\Tests\Service;

use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;

class FlatRateShipmentTest extends KernelTestCase
{
  private $container;
  private $router;

  private $street = 'Masonic Hill Road';
  private $city = 'Little Rock';
  private $country = 'US';
  private $postcode...