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
accessors 65
application performance data 296-300
application performance monitoring (APM) 293
Atlassian Jira 15
AWS CodeDeploy application
AWS EC2 instance
connecting to 272
Elastic IP, attaching to 276-279
need for 258
AWS resources 258
B
Behat 129
installing 130
used, for applying behavior-driven development (BDD) 129
Behat application
Behat feature
Feature keyword 132
Behat feature, based on Jira ticket
Behat PHP context
Behat registration feature
fail controller tests, writing 164, 165
Behat tests
behavior-driven development (BDD) 11, 12, 128, 129, 180
applying, with Behat 129
applying, with Gherkin 129
Bitbucket
URL 30
Bitbucket Pipelines
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
containers 40
continuous integration (CI) 16, 102, 240
Bitbucket Pipelines, using 247-254
D
Dependency Inversion Principle (DIP)
Docker
docker-compose
Docker containers
stopping 47
Docker Desktop 41
Docker, for macOS user
download link 41
Docker, for Windows users
download link 41
Docker image
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
features and scenarios 144
used, for applying behavior-driven development (BDD) 129
Gherkin feature
writing 181
I
inheritance
integration test example 106
Doctrine entity, creating 112-115
Doctrine entity, creating for entity 115, 116
Doctrine, used for creating database 108, 109
integration test, failing 109-112
test database, creating 116, 117
integration tests
using, reasons 125
Interface Segregation Principle (ISP) 219
J
Jira
integrating, with Bitbucket 29-37
Jira Cloud account
Jira Cloud project
Jira epic
Jira ticket 179
Jira user stories 25
Inventory Clerk Solution group 155
Visitors Page group 155
writing 26
L
Linux Apache MySQL PHP (LAMP) 44
Liskov Substitution Principle (LSP) 213
M
installing 131
reference link 139
motor museum example business project 13
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
encapsulation 59
in PHP 50
polymorphism 67
Open-Closed Principle (OCP) 199
P
PHP 8 container
New Relic agent, installing in 294-296
PHP code, based on Gherkin
PHP development container
multiple containers, running 42, 43
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
Mock and Stub interface 191-199
test doubles 191
project
solution code, writing 155-157
Q
quality assurance (QA) tests 3
R
Red, Green, Refactor (RGR) 7
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
Single-Responsibility Principle implementation
solution code, writing 186
Single-Responsibility Principle (SRP)
TDD, using with 185
Dependency Inversion Principle 224
Interface Segregation Principle 219
Liskov Substitution Principle 213
Open-Closed Principle 200
Single-Responsibility Principle 185
solution code
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
Symfony application tests
local environment, setting up 238, 239
passing 238
running 238
Symfony tests
T
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
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
U
unit tests
defining 81
V