Index

As this ebook edition doesn't have fixed pagination, the page numbers below are hyperlinked for reference only, based on the printed edition of this book.

A

abstract class 59

abstraction

in OOP 58, 59

accessors 65

application performance data 296-300

application performance monitoring (APM) 293

Atlassian Jira 15

AWS CodeDeploy application

creating 268-272

AWS EC2 instance

connecting to 272

Elastic IP, attaching to 276-279

need for 258

setting up 258-268

AWS resources 258

B

Behat 129

installing 130

used, for applying behavior-driven development (BDD) 129

Behat application

preparing 245, 246

Behat feature

creating 131, 132

Feature keyword 132

Scenario keyword 132, 133

Behat feature, based on Jira ticket

creating 157, 158

Behat PHP context

generating 181, 182

Behat registration feature

creating 158-163

fail controller tests, writing 164, 165

passing 163, 170-176

Behat tests

preparing 245, 246

behavior-driven development (BDD) 11, 12, 128, 129, 180

applying, with Behat 129

applying, with Gherkin 129

Bitbucket

Jira, integrating with 29-37

URL 30

Bitbucket Pipelines

running 284-292

settings 280-283

using, for continuous integration (CI) 247-254

browser emulators 138

Behat application, interacting with 138-143

controllers 138

headless 138

C

class 52

CodeDeploy Agent

installing 273

reference link 273

CodeDeploy configuration file

creating 283, 284

containers 40

monitoring 300-302

continuous integration (CI) 16, 102, 240

Bitbucket Pipelines, using 247-254

D

Dependency Inversion Principle (DIP)

TDD, using with 224-233

Docker

installing 274, 275

docker-compose

installing 275, 276

Docker containers

running 43-47

stopping 47

Docker Desktop 41

Docker, for macOS user

download link 41

Docker, for Windows users

download link 41

Docker image

building 45-47

Doctrine

installing, with Symfony 6 106-108

URL 106

Don’t Repeat Yourself (DRY) principle 66

E

Elastic IP

attaching, to AWS EC2 instance 276-279

encapsulation

in OOP 59

epics 155

F

functional test

creating 183

G

Gherkin 130, 144

features and scenarios 144

used, for applying behavior-driven development (BDD) 129

Gherkin feature

writing 181

I

inheritance

in OOP 66, 67

integration test example 106

Doctrine entity, creating 112-115

Doctrine entity, creating for entity 115, 116

Doctrine, used for creating database 108, 109

error, fixing 117-124

integration test, failing 109-112

test database, creating 116, 117

integration tests

basket 104-106

creating 184, 185

using, reasons 125

Interface Segregation Principle (ISP) 219

TDD, using with 219-224

J

Jira

integrating, with Bitbucket 29-37

Jira Cloud account

creating 16, 17

Jira Cloud project

initializing 17-22

Jira epic

creating 22-25

Jira ticket 179

Jira user stories 25

creating 26-29

Inventory Clerk Solution group 155

Visitors Page group 155

writing 26

L

Linux Apache MySQL PHP (LAMP) 44

Liskov Substitution Principle (LSP) 213

TDD, using with 213-219

M

Mink 130, 139

installing 131

reference link 139

motor museum example business project 13

business scenario 13, 14

mutators 65

MySQL extensions 42

N

New Relic

account and license key, creating 294

agent, installing in PHP 8 container 294-296

APM, setting up for PHP 293

reference link 294

New Relic APM

reference link 297

O

Object-Oriented Programming (OOP) 49-52

abstraction 58, 59

encapsulation 59

inheritance 66, 67

in PHP 50

polymorphism 67

objects 52-57

Open-Closed Principle (OCP) 199

TDD, using with 200-212

P

PHP 3, 49

PHP 8 container

New Relic agent, installing in 294-296

PHP code, based on Gherkin

writing 133-137

PHP development container

multiple containers, running 42, 43

setting up 40-42

PHP Framework Interoperability Group (PHP-FIG) 74

URL 74

PHP interface 69

PHP Standards Recommendations (PSRs) 74

URL 74

PHPUnit

URL 85

Plain Old PHP Object (POPO) 112, 186, 240

polymorphism

in OOP 67

with PHP abstract class 68, 69

with PHP interface 69-73

processor class 188-191

Mock and Stub interface 191-199

test doubles 191

project

solution code, writing 155-157

tests, writing 155-157

Q

quality assurance (QA) tests 3

R

Red, Green, Refactor (RGR) 7

implementing 149-155

references 54-57

registration solution, with Symfony

database setup 166

home controller, creating 168, 169

implementing 166

registration form, using 167

S

Selenium

reference link 138

shell scripts

using, to run tests 98-102

Single-Responsibility Principle implementation

model class 186-188

processor class 188-191

solution code, writing 186

Single-Responsibility Principle (SRP)

TDD, using with 185

SOLID principles 179, 180

Dependency Inversion Principle 224

Interface Segregation Principle 219

Liskov Substitution Principle 213

Open-Closed Principle 200

Single-Responsibility Principle 185

solution code

writing, for project 155-157

Symfony

reference link, for security documentation 164

registration form, using 167

used, for implementing registration solution 166

Symfony 6

Doctrine, installing with 106-108

Symfony application

preparing 239-244

Symfony application tests

local environment, setting up 238, 239

passing 238

running 238

Symfony tests

preparing 239-244

T

test coverage 85, 86

annotations, declaring 86, 87

functions, adding to solution class 87-91

indirect testing, for private methods 95-97

reflection feature, using to directly test for private methods 92-95

test-driven development (TDD) 3, 4, 12, 49

misconceptions 5, 6

reasons, for considering 6-9

with Dependency Inversion Principle (DIP) 224-233

with Interface Segregation Principle (ISP) 219-224

with Liskov Substitution Principle (LSP) 213-219

with Open-Closed Principle 199-212

with Single-Responsibility Principle 185

tests

shell scripts, using to run 98-102

types 102

writing, for project 155-157

U

unit tests

basket 102-104

defining 81

example 81-85

V

visibility, PHP 60-65

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset