PSR-20 Clocks: Testable Time in PHP
Learn how a ClockInterface helps you decouple time and write stable, testable code.
Learn how a ClockInterface helps you decouple time and write stable, testable code.
Coroutines are functions that can pause and resume execution while remembering their internal state, enabling bi-directional communication.
The repository pattern is a data source abstraction that behaves like a collection; containing domain (value) objects.
How to replace your mocked event dispatchers with a real one, and why.
Linked lists are a linear data structure that provides quick insertion and deletion.
The Middleware Pattern allows you to easily change the input and output of an action; one layer at a time.
Heaps are an effective data structure for quick access to the highest value of a dataset.
The Visitor Pattern opens up your entities to extension without changing them (much); and keeps the code separate.
In this post I want to introduce you to Tree structures. What they are, how you can use them, and in which situation they can be helpful.
The Adapter pattern and the Bridge Pattern have brought along a lot of confusion. Time to connect the dots.
Cloning is a nice way of creating a quick copy of an object. But there are some things you need to be aware of!
Although similar, Decorators and Proxies are not the same. It all depends on their intent.
Now that Swiftmailer is (almost) dead, let s meet its replacement.
doekenorg/iterator-functions provides array-like functions that will ease the use of iterators & generators.
Learn more about these supercharged arrays that can preserve memory.
An exploration into events and their workings within multiple frameworks.
Save yourself from (re)creating difficult objects for simple assertions.
Streamline and minimize your UI by customizing a BooleanGroup.
How to create single-use access tokens and more with a simple callable.
Composition over inheritance by using traits; but how can you test these traits in more complex use cases?