Abstract Factory pattern
add() method
addClean() method
addDirty() method
addNew() method
addTest() method
addToMap() method
addUnit() method
addUser() method
anonymous classes
Ant
ApplicationRegistry::instance() method
BinaryCloud
bombardStrength() method
BooleanAndExpression
Bugzilla
Build document composing
build.xml
copy task
overwrite attribute
tofile attribute
delete task
echo task, msg attribute
fileset data type
excludes attribute
fileset element attribute
filterchain element
includes attribute
patternset element
input task
phing command
project element
property element
additional attribute
condition task
dbname
dbpass
-D flag
${env.DBPASS}
if attribute
name
override attribute
propertyfile option
target element attribute
unless attribute
value
targets
default attribute
description attribute
housekeeping function
main target
name attribute
projecthelp
runfirst
runsecond
-v flag
XML comments
buildStatement() method
Business Logic Layer
domain model
class diagram
cut-and-paste coding
static method
Venue object
transaction script
consequences
database tables
prepare() method
superclass
VenueManager class
calculateTax() method
chargeType() method
Code design
Command pattern
abstract base class
AccessManager class
AccessManager object
client coding
concrete Command class
Command class
CommandContext implementation
CommandFactory class
LoginCommand class
login.php/feedback.php pages
participants
point-of-contact pages
process() method
refactoring
Registry class
Composer
autoload
definition
installation
packages
installation
.json file
platform packages
require-dev
vendor name
versions
packagist
composer.json file
installattion
package control panel
version
private package
Composite pattern
abstract methods
add/remove methods
Archer and LaserCannonUnit classes
Army and TroopCarrier classes
class diagram
CompositeUnit class
explicit reach
flexibility
implicit reach
inheritance hierarchies
simplicity
troop carriers
unit types
Condition task
constant() method
Constructor method
Continuous integration (CI)
abstract cost() method
check coverage
code coverage
create() method
createObject() method
creation
CVS
definition
install phpDocumentor
Jenkins
building link
definition
Fedora distribution
Git public key
plugins
project installation
report configuration
triggering builds
phing
PHP_CodeSniffer task
testreport.xml
type xml
unit tests
version control
Database Pattern
domain object factory
classes
Collection implementation
createObject() method
database decoupling
objects on demand
PersistenceFactory class
identity object
classes
client code
consequences
EventIdentityObject class
IdentityObject class
problem
WHERE clause
Lazy Load
consequences
DeferredEventCollection method
doCreateObject() method
EventCollection object
notifyAccess() method
SpaceCollection object
SpaceMapper code
Space object
selection and update factory
base class
buildStatement() method
class diagram
consequences
newUpdate() method
PersistenceFactory
problem
SelectionFactory class
newUpdate() method
UpdateFactory class
VenueUpdateFactory class
Unit of Work
addClean() method
addDirty() method
addNew() method
consequences
constructor method
database operations
DomainObject class
Mapper class
markDirty()
ObjectWatcher class
ObjectWatcher object
performOperations() method
SQL statements
Venue and Space
Data layer
Data Mapper
base class
Child classes
Collection class
Collection object acquisition
Collection classes
findAll() method
findByVenue() method
setSpaces() operation
SpaceCollection
SpaceMapper class
consequences
doCreateObject() method
doInsert() method
DomainObjectAssembler class
find() method
generator function
getFinder() method
getVenueMapper() method
insert() method
insertion and updation
Iterator implementation
Iterator interface
Mapper classes
persistence classes
Registry class
$raw argument
relational database
selectStmt()
Update() method
Venue objects
VenueCollection class
VenueCollection object
Decorator pattern
class diagram
class hierarchy
composition and delegation
consequences
DecorateProcess
DiamondDecorator
getWealthFactor() method
hard-code variation
implementation
Plains object
Pollution and Diamond classes
PollutionDecorator
Tile class
defensiveStrength()method
Dependency Injection pattern
Design patterns
Abstract Factory
Abstract Factory pattern
benefits of
books, list of
collaboration
common vocabulary
complementary patterns
consequences
definition
definition of
gang of four format
half-baked nature of
inscribe approaches
language independent
name
nuances solution
overuse of
pattern language
PHP
popular frameworks
problem defines
promoting good design
recognizing and context problems
recursive descent parser
tried-and-tested technique
vocabulary defines
web sites, list of
Design pattern principles
composition and inheritance
abstract class
brute-force solution
child classes
class diagram
CostStrategy implementation
Lesson class
strategy pattern
concept
database patterns
decoupling
client code
DBAL package
encapsulation
implementation
Lesson system
Mailer class
MySQL database
RegistrationMgr
reusability
tight coupling
enterprise patterns
eXtreme Programming
interface power
objects and classes
pattern categories
revelation
task-oriented patterns
doCreateObject() method
doInsert() method
dointerpret() method
Domain Specific Language (DSL)
Encapsulation
Enterprise patterns
a rchitecture overview
business logic layer
presentation layer
registry pattern
Enterprise system
application controller
architecture overview
business logic layer
command and control layer
data layer
domain model
front controller
HTML interface
page controller
participants
presentation layer
registry pattern
ApplicationHelper class
code class
configuration file
consequences
instance() method
key-based system
PHP
Registry object
scope
Singletons
static instance() method
tradeoff
TreeBuilder
SOAP/RESTful API
template view
testing
transaction script
view layer
Error-prone method
EventMapper::findBySpaceId() method
execute() method
exists() method
expectException() method
Extended Backus-Naur Form (EBNF)
Extreme Programming (XP)
Facade pattern
consequences
implementation
procedural code
subsystems
Factory Method pattern
fatal error
FilterChain element
build/lib/Config.php
PHP comment
replacetokens
src/lib/Config.php
StripPhpComments
todir attribute
XSLT transformation
findAll() method
findByVenue() method
findElement() method
Flexible object programming
composite pattern
decorator pattern
facade pattern
forward() method
generateId() method
getApptEncoder() method
getCommand() method
getComposite() method
getDepth() method
getDescriptor() method
getFinder() method
getFooterText() method
getFromMap() method
getHeaderText() method
getInstance() method
getKey() method
getPlayLength()method
getPrice()method
getProducer() method
getProduct() function
getRow() method
getStatus() method
getTaxRate() method
getUser() method
getVenueMapper() method
getWealthFactor() method
Git server
add directories
cloning
command/FeedbackCommand.php file
documentation
execute() method
feedbackcommand
git branch command
GitHub tag
git push command
installation
megaquiz project
pull request
quizobjects/User.php vs . file
remote repository
local user
shell access
SSH access
remove directory
version control
globalKey() method
handleLogin() method
handleRequest() method
Identity Map
addToMap() method
consequences
exists() method
getFromMap() method
globalKey() method
integration
object information
ObjectWatcher class
targetClass() method
test code
Inheritance
class switching (polymorphism)
problem
books and CDs
first approach
getProducer() methods
getSummaryLine() method
numPages and $playLength properties
ShopProduct class
ShopProductWriter class
public, private and protected access
accessor methods
elements
getPrice() method
ShopProduct classes
private $price property
working
constructors
getPlayLength() and getNumberOfPages() methods
getSummaryLine() method
overridden method
$title property
init() method
insert() method
instance() method
interpret() method
InterpreterContext class
InterpreterContext object
Interpreter pattern
add() method
BooleanAndExpression class
Boolean logic
BooleanOrExpression class
BooleanOrExpression object
CharacterParse class, code listing
class diagram
CollectionParse class, code listing
compile() method
complexity issue
composite parsers
composite pattern
Context class, code listing
disadvantages
discard() method
dointerpret() method
doScan() method
DSL
eatWhiteSpace() method
EBNF
EqualsExpression class
EqualsExpression objects
equals operator
evaluate() method
expression implementation
expression() method
getKey() method
getState() method
grammar description
handleMatch() method
interface design
interpret() method
InterpreterContext class
InterpreterContext object
invocation internals
invokeHandler() method
isSpaceChar() method
isWordChar() method
LiteralExpression object
lookup() method
MarkLogic Grammar
MarkLogic interpreter
MarkParse class, code listing
Metsker, Steven
mini-language
next() method
nextToken() method
OperatorExpression class
Parser class, code listing
Parser classes, illustration of
parsing statement
push() method
Reader interface
replace() method
scan() method
Scanner class, code listing
ScannerState class
security issue
setHandler() method
setState() method
StringReader class
terminal parsers
term() method
tokens
tree of, Parser objects
trigger() method
VariableExpression object
VariableExpression class
VariableHandler class
variable() method
is_array() function
isNull() method
joinExisting() method
Late static bindings
LibXmlError class
LiteralExpression class
LiteralExpression object
LoginAnalytics class
lookup() method
mail() function
Mailman
Mapper::createObject() method
mark() method
Matcher methods
MatchMarker
Megaquiz project
method() method
ModuleRunner::handleMethod() method
ModuleRunner’s init() method
movementRange()method
myMethodName() function
NastyBoss::addEmployee() method
newUpdate() method
Notifier::getNotifier() method
notifyAccess() method
notifyPasswordFailure() method
Null Object pattern
isNull() method
NullUnit class
TileForces constructor
UnitAcquisition class
Object generation
abstract factory pattern
BloggsCal
BloggsCommsManager class
CommsManager class
concrete creator and products
consequences
factory method
MegaCal
product families
AppConfig class
AppointmentMaker
assembler class
BloggsApptEncoder object
delegate object instantiation
Employee class
factory method pattern
abstract class ApptEncoder
abstract class CommsManager
abstract creator
ApptEncoder class
BloggsApptEncoder class
BloggsCal
BloggsCommsManager class
CommsManager class
Concrete creator
consequences
generalizations
getFooterText() method
MegaCal classes
product classes
terminology
getInstance() method
hard-code configuration
init() method
NastyBoss class
polymorphism
protocol types
prototype object
prototype pattern
benefits
Civilization-style web game
class diagram
clone() method
$navigability property
parallel inheritance hierarchies
TerrainFactory object
TerrainFactory class
Singleton pattern
consequences
DSN strings
global variables
implementation
$instance property
Preferences class
Preferences object
private constructor
static method
well-designed systems
static method
string and instantiates
TerrainFactory class
Object-oriented design
aesthetics of
automated build
code duplication
Continuous Integration (CI)
decoupling, definition of
encapsulation
global variables
metasystem
multiple projects
phpDocumentor
polymorphism
public interface
reusability, promoting
test frameworks, benefits of
tight coupling, causes of
Object-oriented system
Objects and design
abstract base class
addParam()method
classes
code design
Cohesion
coupling
encapsulation
file extension
getInstance() method
illustrative code
interface
orthogonality
persistence method
polymorphism
abstract base class
conditional statement
definition
return type
subclasses
procedural code
readParams function
responsibility
signposts
code duplication
conditional statements
global variables
responsibility
static method
UML
writeParams() function
XML mode
$objects array
Object tools and techniques
autoload
default behavior
functions
mechanisms
replaceUnderscores() function
ShopProduct class
spl_autoload() function
spl_register_function()
spl_unregister_function()
class and object functions
BookProduct/CdProduct class
callable()
class_exists() function
fully qualified string reference
get_class() function
get_class_methods()
get_declared_classes() function
getProduct() function
inheritance
method_exists() function
method invocation
properties
file system
include paths
PEAR way
PHP packages and namespaces
alias explicit
backslash accesses
classes, functions, and variables
Debug class
global space
helloWorld()
__NAMESPACE__ constant
naming collisions
organization/project identifier
URL and filepaths
Reflection API
application
classes
cloneable method
examining methods
execute() method
handleMethod()
implementation
init() method loops
module interface
module object’s setter methods
multidimensional array
$params array argument
quick-and-dirty method
ReflectionClass
ReflectionClass object
ReflectionFunction class
ReflectionMethod
static export() method
var_dump() function
Observer pattern
abstract superclass
attach() method
class diagram
detach() method
getStatus() method
handleLogin() method
implementation
Login class
LoginObserver class
notify() method
Observer class interface
rand() function
SPL
SplObjectStorage
SplObserver
SplSubject
Update() method
user access
OperatorExpression
Orthogonality
Overloading
Packages
build tool
clients vs . developers
cloud products
composer
good mail() function
packagist website
PEAR
Phing application
standards
third-party packages
version control system
ParamHandler class
parse() method
Pattern Language
PatternSet
attributes
exc_test
inc_code
refid attribute
PEAR
Pear application
performOperations() method
Phing
Ant
definition
installation tool
package creation
PHP application
PHP tool
tar/gzipped package
tasks
PHP
client code
Zend Engine 2
PHP 5
PHP CODEBASE
Apache module ModRewrite
BinaryCloud
design pattern
Java language
object-oriented design
objects
patterns
practice
presentation layer
testing
XP’s principles
Zend 2 Engine
php_codesniffer task
PHP Extension and Application Repository (PEAR)
PHP Framework Interop Group (PHP-Fig)
PHP objects
advocacy and agnosticism
Andi Gutmans
change embraced
features
inheritance
PHP 7
PHP/FI
quiet revolution
Zeev Suraski
PHP’s core object-oriented features
abstract class
anonymous classes
arguments and types
AddressManager class
hint types
outputAddresses() method
primitive types and checking functions
Built-in Error classes
callbacks, anonymous functions and closures
classes
__clone()
constant properties
destructor methods
final classes and methods
handling errors
Conf class
error flag
exception
simplexml:load_file()
subclassing exception
throw exception
try/catch clauses
inheritance
interceptor methods
Address::$streetaddress property
__call() method
composite property
get() method
getName() method
__isset() method
$name property
overloading
Person class
__set() method
setName() method
__unset()
interfaces
internal error class
late static bindings
abstract classes
create() method
definition
DomainObject
DomainObject class
getGroup() method
self keyword
SpreadSheet class
static factory method
methods
constructor method
getProducer() method
method body
object variable
visibility keyword
objects
setting properties
static methods and properties
__toString() method
traits
abstract method
access rights changing
calculateTax() method
host class properties
insteadof operator
interfaces
overridden methods
PriceUtilities and IdentityTrait
problem
ShopProduct and UtilityService
static methods
PHP Standards
design pattern
PSR-1
class file
class naming
opening and closing tags
read_conf() method
side effects
PSR-2
calling methods and functions
class declaration
flow control keywords
lines and indentation
multi line declaration
namespace declarations
PHP_CodeSniffer
properties declaration
single line declaration
PSR-4
additional/inventory directories
Autoloading Standard
index.php
json file
LibraryCatalogue class
popp\library namespace
popp\library class
popp\library\inventory\Book class
popp\Services class
require_once()
PSRs
recommendations
PHPUnit
PHPUnit_Framework_TestCase method
PHPUnit testing
acceptance tests
assertion methods
benefits
client class
constraint methods
exceptions
functional tests
in-memory database
mocks and stubs
.phar file
refactoring web applications
Selenium
AddSpace page
AddVenue page
boilerplate test class
browser window
components
documentation
factory methods
php-webdriver
RemoteWebDriver class
sendKeys() method
web pages
SUnit framework
testing by hand
unit tests
UserStore class
ValidatorTest class
WOO system
xUnit family
Portland Pattern Repository
Presentation layer
application controller
AddSpace command
AddVenue command
AppController class
CliRequest
Command/status element
Command class
ComponentDescriptor
Concrete Command
configuration directives
consequences
Front Controller
getDescriptor() method
high-level process
initialization process
pattern
processView() method
resolveCommand() method
TemplateViewComponent
TemplateViewDisplay
view element
ViewComponentCompiler class
Front Controller
ApplicationHelper class
CliRequest class
Command class
CommandResolver
consequences
Controller class
execute() method
handleRequest() method
HttpRequest class
implementation
init() method
Request superclass
run() method
sequence diagram
Page Controller
AddVenueController class
base class
child class
consequences
forward() method
new venue
pattern
process() method
relationship management
view element
Template View
consequences
render() method
Security issues
sponsorList() method
View Helper class
process() method
processView() method
Prototype pattern
rand() function
$raw array
recruit() method
RegexpMarker
registerCallback()
remove() method
removeUnit() method
render() method
replace() method
resolveCommand() method
run() method
runCommand() method
Runner.php class
sale() method
sendKeys() method
Service Locator pattern
setDepth() method
setMaximumStart() method
setUp() method
setValue() method
ShopProduct classes
Singleton pattern
SpaceIdentityObject
spl_autoload_register() function
sponsorList() method
Standard PHP Library (SPL)
Strategy pattern
defining subclasses
marking strategies
two forces
extracting algorithms
increasing flexibility
inheritance hierarchy
mark() method
marker objects
MarkLogic statement
MarkParse object
Question class
AVQuestion
coding
TextQuestion
reducing subclassing
TextQuestion object
SUnit framework
targetClass() method
tearDown() method
Template Method
TestCase class
testgetUser() method
Test harness
Unified modeling language (UML)
class diagrams
abstract classes
aggregation
association
attributes
clarification
composition
inheritance and implementation
interfaces
operations
relationship
representing classes
visibility symbols
constraints
definition
sequence diagram
Unified Modeling Language (UML)
Update() method
UserStore::addUser() method
UserStore class
Vagrant
commands
mounting
provisioning process
chkconfig
hostname configuration
MySQL
mysqladmin command
poppch20.conf file
Vagrantfile document
search interface
Vagrantfile document
VirtualBox installation
virtualization
validateUser() method
VariableExpression class
VenueMapper::doCreateObject() method
Version control
benefits of
branching
rolling back by date
visitArmy() method
Visitor pattern
accept() method
addUnit() method
ArmyVisitor object
class diagram
CompositeUnit class
disadvantages
getDepth() method
getReport() method
getTax() method
setDepth() method
TaxCollectionVisitor object
TextDumpArmyVisitor object
Unit classes
visit() method
visitArmy() method
visitor class
warnAmount() method
wikis
DokuWiki
PhpWiki
workWithProducts() method
write() method
writeHTML() methods
writeXML() methods
xUnit
Zend Engine