New edition for the Rector Book

read more

Dealing with technical debt during the sprint

read more

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

A step-debugger for the PHP AST

read more

Simple Solutions 1 - Active Record versus Data Mapper

read more

What's a simple solution?

read more

My book-writing workflow

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

New book: Recipes for Decoupling

read more

DDD entities and ORM entities

read more

Too much magic?

read more

Millennials doing things everyone should know about

read more

Commit your code as if it could be accidentally deployed

read more

The Dependency Injection Paradigm

read more

Do you have an exit strategy?

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

On using PSR abstractions

read more

Release of the Rector book

read more

Don't test constructors

read more

Early release of Rector - The power of automated refactoring

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

Excerpt from PHP for the Web: Error handling

read more

Talk review: Thomas Pierrain at DDD Africa

read more

Successful refactoring projects - The Mikado Method

read more

Successful refactoring projects - Set the right goal

read more

Successful refactoring projects - Prepare to stop at any time

read more

Should we use a framework?

read more

Dynamically changing the log level in Symfony apps

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

Release of the Advanced Web Application Architecture book

read more

Unit test naming conventions

read more

Book release: PHP for the Web

read more

DDD and your database

read more

Creating a simple link registry

read more

Early release of the Advanced Web Application Architecture book

read more

Functional tests, and speeding up the schema creation

read more

Book review: The Writer's Process, by Anne Janzer

read more

Is all code in vendor infrastructure code?

read more

Rules for working with dynamic arrays and custom collection classes

read more

The release of Object Design Style Guide

read more

Defining a custom filter and sorter for Sculpin content types

read more

Improvements in personal website deployment

read more

Introducing MailComments

read more

Is not writing tests unprofessional?

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

You may not need a query bus

read more

Learning Laravel - Observations, part 1: The service container

read more

Newcrafts 2019 Day 1

read more

Style Guide for Object Design: Release of the PHP edition

read more

Hand-written service containers

read more

DDD Europe notes - Day 2

read more

DDD Europe notes - Day 1

read more

Principles of Package Design, 2nd edition

read more

Test-driving repository classes - Part 2: Storing and retrieving entities

read more

Test-driving repository classes - Part 1: Queries

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

Improving your software project by being intolerant

read more

More code comments

read more

Negative architecture, and assumptions about code

read more

Objects should be constructed in one go

read more

About fixtures

read more

Blogging every week

read more

Testing actual behavior

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

Book review: Fifty quick ideas to improve your tests - Part 2

read more

Book review: Fifty quick ideas to improve your tests - Part 1

read more

Book review: Discovery - Explore behaviour using examples

read more

Remote working

read more

Context passing

read more

Combing legacy code string by string

read more

Exceptions and talking back to the user

read more

Mocking the network

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

Local and remote code coverage for Behat

read more

Reducing call sites with dependency injection and context passing

read more

Unary call sites and intention-revealing interfaces

read more

Keep an eye on the churn; finding legacy code monsters

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

How to make Sculpin skip certain sources

read more

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

read more

Making money with open source, etc.

read more

Duck-typing in PHP

read more

Convincing developers to write tests

read more

Introducing the ConvenientImmutability package

read more

Introducing the SymfonyConsoleForm package

read more

Containerizing a static website with Docker, part III

read more

Containerizing a static website with Docker, part II

read more

Containerizing a static website with Docker, part I

read more

Creating virtual pages with Sculpin

read more

Project documentation with Sculpin

read more

A Year With Symfony - End Of Life

read more

Symfony Catalunya

read more

Behind the scenes at Coolblue

read more

Meeting the Broadway team - talking DDD, CQRS and event sourcing

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

Experimenting with Broadway

read more

Introducing the SymfonyBundlePlugins package

read more

Compartmentalization in the PHP community

read more

Lean publishing "Principles of Package Design"

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

The Hexagonal Architecture training tour

read more

Packages: the case for clones

read more

Decoupling from a service locator

read more

Symfony in Barcelona

read more

Unnecessary contrapositions in the new "Symfony Best Practices"

read more

Composer "provide" and dependency inversion

read more

Announcements after a year with "A Year With Symfony"

read more

Backwards compatible bundle releases

read more

Semantic versioning for bundles

read more

Exposing resources: from Symfony bundles to packages

read more

Decoupling your (event) system

read more

Symfony2: Event subsystems

read more

Celebrating a year with "A Year With Symfony"

read more

A better PHP testing experience Part II: Pick your test doubles wisely

read more

The PHP testing experience: Interview by Fernando Arconada

read more

A better PHP testing experience Part I: Moving away from assertion-centric unit testing

read more

A better PHP testing experience: Introduction

read more

Symfony2: Framework independent controllers part 3: Loose ends

read more

Symfony2: Framework independent controllers part 2: Don't use annotations

read more

Symfony2: How to create framework independent controllers?

read more

Inject a repository instead of an entity manager

read more

Inject the ManagerRegistry instead of the EntityManager

read more

Book review: Modernizing Legacy Applications in PHP

read more

Principles of PHP Package Design - First part of the book is now available

read more

There's no such thing as an optional dependency

read more

Test Symfony2 commands using the Process component and asynchronous assertions

read more

About coding dojos, the Symfony meetup and my new book

read more

A Year With Symfony: Bonus chapter is now available!

read more

The "dark" side of PHP

read more

Interview with Leanpub: A Year With Symfony

read more

PHP - The Future of Packages

read more

Symfony2: Add a global option to console commands and generate a PID file

read more

Symfony2: Some things I don't like about Bundles

read more

Looking back at the release of "A Year With Symfony"

read more

Symfony2: Console Commands as Services - Why?

read more

Principles of PHP Package Design

read more

Symfony2 & TDD: Testing a Configuration Class

read more

Official book presentation: A Year With Symfony

read more

Why Symfony? Seven Facts

read more

A New Book About Symfony2: A Year With Symfony

read more

Symfony2: Rich Console Command Output Using AOP

read more

PHPUnit & Pimple: Integration Tests with a Simple DI Container

read more

Slides for my "Dependency Injection Smells" talk

read more

Dependency Injection Smells - Speaking at the Dutch PHP Conference

read more

Symfony2: Defining and dispatching custom form events

read more

Symfony2: Security enhancements part II

read more

Symfony2: Security enhancements part I

read more

Dependency injection smells

read more

Symfony2 & Twig: Collecting data across templates using a node visitor

read more

Prevent controller execution with annotations and return a custom response

read more

Symfony2: Application configuration for teams

read more

Experiences with PHP open source software in a Symfony-friendly environment

read more

Combining GridFS files with ORM entities

read more

Uploading files to MongoDB GridFS

read more

Symfony2 & MongoDB ODM: Adding the missing ParamConverter

read more

Symfony2 & MongoDB ODM: Creating custom types with dependencies

read more

Symfony2: Introduction to the Security Component part III

read more

Symfony2: Introduction to the Security Component part II

read more

Symfony2: Introduction to the Security Component part I

read more

Symfony2 Security: Using advanced Request matchers to activate firewalls

read more

Symfony Security Component & Silex: Adding a security voter for domain names

read more

Symfony2 Security: Creating dynamic roles (using RoleInterface)

read more

Silex: Using HttpFoundation and Doctrine DBAL in a Legacy PHP Application

read more

Let Silex Wrap Your Legacy PHP Application (and add Twig for templating)

read more

Symfony2: Testing Your Controllers

read more

Symfony2 Config Component: Config Definition and Processing

read more

Symfony2 Config Component: Using FileLocator, Loaders and LoaderResolver

read more

Symfony2 & JMSSerializerBundle: Vendor MIME types and API versioning

read more

PHP: A Custom Stream Wrapper Part 2: Reading and Seeking

read more

PHP: Create an Object-Oriented XML Parser using the Built-in xml_* Functions

read more

PHP: Setting up a Stream Wrapper for Manipulating the DOM

read more

Symfony2: Setting up a Console-centered Application (with Composer)

read more

Symfony2 & Metadata: Caching Class- and PropertyMetadata

read more

Symfony2: Writing a Yaml Driver for your Metadata Factory

read more

Symfony2: Creating a Metadata Factory for Processing Custom Annotations

read more

Symfony2: creating a ParamConverter for deserializing request content

read more

Symfony2: Deserializing request content right into controller arguments

read more

Silex: creating a service provider for Buzz

read more

How to Install Sismo

read more

PHPUnit: Writing a Custom Assertion

read more

Wordpress & Symfony2: using the CssSelector and FluentDOM to filter HTML snippets

read more

Silex: set up your project for testing with PHPUnit

read more

Silex: getting your project structure right

read more

The Symfony2 Serializer Component: create a Normalizer for JSON class hinting

read more

Symfony2: dynamically add routes

read more

Symfony2 & Doctrine Common: creating powerful annotations

read more

Symfony2: Extending forms globally ("you know, like with CSRF protection")

read more

Symfony2: Creating a Validator with dependencies? Make it a service!

read more

Symfony2: An alternative to Symfony 1's "routing.load_configuration" event

read more

PHPUnit: create a ResultPrinter for output in the browser

read more

Symfony2: running PHPUnit from within a controller

read more

Symfony2: define your bundle's configuration values using the TreeBuilder

read more

Symfony2: use a bootstrap file for your PHPUnit tests and run some console commands

read more

Symfony2: how to create a custom Response using an event listener

read more

Use DocBlox in Symfony2 for inspecting DocComment blocks

read more

Symfony2: create a response filter and set extra response headers

read more

Symfony2: How to create a UserProvider

read more

Symfony2 service container: how to make your service use tags

read more

Dutch PHP Conference wisdom applied to working with the symfony framework

read more