Refactoring without tests should be fine

read more

Good design means it's easy-to-change

read more

Can we consider DateTimeImmutable a primitive type?

read more

Is it a DTO or a Value Object?

read more

Simple Solutions 1 - Active Record versus Data Mapper

read more

What's a simple solution?

read more

When to use a trait?

read more

Decoupling your security user from your user model

read more

Effective immutability with PHPStan

read more

DDD entities and ORM entities

read more

Too much magic?

read more

The Dependency Injection Paradigm

read more

Quick Testing Tips: One Class, One Test?

read more

Quick Testing Tips: Write Unit Tests Like Scenarios

read more

Where do types come from?

read more

Quick Testing Tips: Testing Anything; Better Than Testing Nothing?

read more

Quick Testing Tips: Self-Contained Tests

read more

Don't test constructors

read more

Do tests need static analysis level max?

read more

Book excerpt - Decoupling from infrastructure, Conclusion

read more

Testing your controllers when you have a decoupled core

read more

Does it belong in the application or domain layer?

read more

Should we use a framework?

read more

A simple recipe for framework decoupling

read more

Violating the Dependency rule

read more

Relying on the database to validate your data

read more

Free book chapter: Key design patterns

read more

DDD and your database

read more

Is all code in vendor infrastructure code?

read more

Rules for working with dynamic arrays and custom collection classes

read more

Using phploc for a quick code quality estimation - Part 2

read more

Using phploc for a quick code quality estimation - Part 1

read more

Dividing responsibilities - Part 2

read more

Dividing responsibilities - Part 1

read more

Hand-written service containers

read more

Assertions and assertion libraries

read more

Final classes by default, why?

read more

Reusing domain code

read more

When to add an interface to a class

read more

More code comments

read more

Negative architecture, and assumptions about code

read more

Objects should be constructed in one go

read more

Doctrine ORM and DDD aggregates

read more

Road to dependency injection

read more

Deliberate coding

read more

When and where to determine the ID of an entity

read more

Context passing

read more

Exceptions and talking back to the user

read more

Modelling quantities - an exercise in designing value objects

read more

ORMless; a Memento-like pattern for object persistence

read more

Mocking at architectural boundaries: the filesystem and randomness

read more

Lasagna code - too many layers?

read more

Mocking at architectural boundaries: persistence and time

read more

Reducing call sites with dependency injection and context passing

read more

Unary call sites and intention-revealing interfaces

read more

Simple CQRS - reduce coupling, allow the model(s) to evolve

read more

Layers, ports & adapters - Part 3, Ports & Adapters

read more

Layers, ports & adapters - Part 2, Layers

read more

Layers, ports & adapters - Part 1, Foreword

read more

Designing a JSON serializer

read more

The case for singleton objects, façades, and helper functions

read more

Duck-typing in PHP

read more

Refactoring the Cat API client - Part III

read more

Refactoring the Cat API client - Part II

read more

Refactoring the Cat API client - Part I

read more

Collecting events and the event dispatching command bus

read more

Some questions about the command bus

read more

From commands to events

read more

Responsibilities of the command bus

read more

A wave of command buses

read more

Decoupling from a service locator

read more

Dependency injection smells

read more