41554 blogs · [ { "id": "01a0876e-5dc7-7006-982c-cefb2e482e29", "title": "PSR-20 Clocks:\nTestable Time in PHP", "url": "https://doeken.org/blog/psr-20-clocks-testable-time-in-php?ref=atom", "published_at": "2025-09-19T00:00:00+00:00" }, { "id": "01a0876e-5dc7-7006-982c-cefb2e69b757", "title": "Exploring Coroutines in PHP", "url": "https://doeken.org/blog/coroutines-in-php?ref=atom", "published_at": "2025-07-04T00:00:00+00:00" }, { "id": "01a0876e-5dc7-7006-982c-cefb2f445015", "title": "Repository Pattern in PHP: what it is and isn't", "url": "https://doeken.org/blog/repository-pattern?ref=atom", "published_at": "2024-01-25T00:00:00+00:00" }, { "id": "01a0876e-5dc7-7006-982c-cefb2f4be150", "title": "Stop mocking about: Event Dispatcher", "url": "https://doeken.org/blog/stop-mocking-about-event-dispatcher?ref=atom", "published_at": "2022-08-15T00:00:00+00:00" }, { "id": "01a0876e-5dc7-7006-982c-cefb2f5044bf", "title": "(Singly) Linked Lists explained in PHP", "url": "https://doeken.org/blog/linked-lists-explained-in-php?ref=atom", "published_at": "2022-06-22T00:00:00+00:00" }, { "id": "01a0876e-5dc7-7006-982c-cefb304de830", "title": "How the PHP Middleware Pattern works and can easily be applied", "url": "https://doeken.org/blog/middleware-pattern-in-php?ref=atom", "published_at": "2022-04-25T00:00:00+00:00" }, { "id": "01a0876e-5dc7-7006-982c-cefb31423e84", "title": "Heaps explained in PHP", "url": "https://doeken.org/blog/heaps-explained-in-php?ref=atom", "published_at": "2021-12-17T00:00:00+00:00" }, { "id": "01a0876e-5dc7-7006-982c-cefb314a9736", "title": "Using the Visitor Pattern in PHP", "url": "https://doeken.org/blog/visitor-pattern?ref=atom", "published_at": "2021-11-04T00:00:00+00:00" }, { "id": "01a0876e-5dc7-7006-982c-cefb318b4c35", "title": "Trees and Tree Traversal in PHP", "url": "https://doeken.org/blog/tree-traversal-in-php?ref=atom", "published_at": "2021-10-14T00:00:00+00:00" }, { "id": "01a0876e-5dc7-7006-982c-cefb32422a59", "title": "Adapter Pattern vs. Bridge Pattern", "url": "https://doeken.org/blog/adapter-vs-bridge-pattern?ref=atom", "published_at": "2021-10-01T00:00:00+00:00" }, { "id": "01a0876e-5dc7-7006-982c-cefb3330e53e", "title": "What happens when we clone?", "url": "https://doeken.org/blog/what-happens-when-we-clone?ref=atom", "published_at": "2021-09-22T00:00:00+00:00" }, { "id": "01a0876e-5dc7-7006-982c-cefb33e8924a", "title": "Decorator Pattern vs. Proxy Pattern", "url": "https://doeken.org/blog/decorator-vs-proxy-pattern?ref=atom", "published_at": "2021-09-16T00:00:00+00:00" }, { "id": "01a0876e-5dc7-7006-982c-cefb33e9d596", "title": "How to use symfony/mailer without the Symfony Framework", "url": "https://doeken.org/blog/using-symfony-mailer-without-framework?ref=atom", "published_at": "2021-09-09T00:00:00+00:00" }, { "id": "01a0876e-5dc7-7006-982c-cefb3495a12f", "title": "Introducing Iterator Functions", "url": "https://doeken.org/blog/introducing-iterator-functions?ref=atom", "published_at": "2021-08-11T00:00:00+00:00" }, { "id": "01a0876e-5dc7-7006-982c-cefb35137e1b", "title": "Generators over arrays", "url": "https://doeken.org/blog/generators-over-arrays?ref=atom", "published_at": "2021-07-21T00:00:00+00:00" }, { "id": "01a0876e-5dc7-7006-982c-cefb35afcc48", "title": "Event Dispatching", "url": "https://doeken.org/blog/event-dispatching-exploration?ref=atom", "published_at": "2021-06-17T00:00:00+00:00" }, { "id": "01a0876e-5dc7-7006-982c-cefb36a5a85e", "title": "Validate method parameters using callbacks in PHPUnit", "url": "https://doeken.org/blog/callback-assertions-phpunit?ref=atom", "published_at": "2021-05-26T00:00:00+00:00" }, { "id": "01a0876e-5dc7-7006-982c-cefb3791b076", "title": "Group multiple boolean attributes in Laravel Nova", "url": "https://doeken.org/blog/group-multiple-boolean-fields-laravel-nova?ref=atom", "published_at": "2021-05-19T00:00:00+00:00" }, { "id": "01a0876e-5dc7-7006-982c-cefb37e8567a", "title": "Custom Access Tokens in Laravel Sanctum", "url": "https://doeken.org/blog/custom-access-tokens-laravel-sanctum?ref=atom", "published_at": "2021-05-12T00:00:00+00:00" }, { "id": "01a0876e-5dc7-7006-982c-cefb387adfa5", "title": "Testing Traits in PHPUnit", "url": "https://doeken.org/blog/testing-traits-in-phpunit?ref=atom", "published_at": "2021-04-24T00:00:00+00:00" } ] posts Claim your blog
Back to doeken.org
Blog · corpus.blog/blogs/doeken.org/posts

doeken.org

doeken.org

2025

2024

2022

2021