-
Recent Posts
Recent Comments
Archives
- June 2025
- May 2025
- April 2025
- February 2025
- December 2024
- October 2024
- September 2024
- September 2023
- May 2023
- April 2023
- February 2023
- June 2022
- May 2022
- March 2022
- December 2021
- November 2021
- October 2021
- September 2021
- January 2021
- November 2020
- September 2020
- July 2020
- January 2020
- December 2019
- July 2019
- December 2018
- June 2018
- April 2018
- March 2018
- January 2018
- November 2017
- September 2017
- July 2017
- March 2017
- December 2016
- October 2016
- August 2016
- July 2016
- June 2016
- May 2016
- April 2016
- January 2016
Categories
Meta
-
Recent Posts
Recent Comments
Archives
- June 2025
- May 2025
- April 2025
- February 2025
- December 2024
- October 2024
- September 2024
- September 2023
- May 2023
- April 2023
- February 2023
- June 2022
- May 2022
- March 2022
- December 2021
- November 2021
- October 2021
- September 2021
- January 2021
- November 2020
- September 2020
- July 2020
- January 2020
- December 2019
- July 2019
- December 2018
- June 2018
- April 2018
- March 2018
- January 2018
- November 2017
- September 2017
- July 2017
- March 2017
- December 2016
- October 2016
- August 2016
- July 2016
- June 2016
- May 2016
- April 2016
- January 2016
Categories
Meta
Category Archives: PHP
The Tears of a Clone
On the face of it, the new readonly properties in PHP 8.1 seem really useful for Value Objects and Data Transfer Objects: both should be immutable; setting property values should always be handled in the constructor, so no setters; and … Continue reading
Closure Binding for Unit testing of Private and Protected Methods
Some years ago, I wrote about using closure binding to access protected and private properties when unit testing an object, to verify internal state; and I created the SpyMaster library to simplify that task. One feature that I didn’t include … Continue reading
Spreading the News – An Exploration of PHP’s Spread Operator
A few days ago, I wrote about array unpacking and variadic arguments in PHP8. I’m a big fan of these features, and use them extensively, and the changes in PHP8 make them even more useful.
Named Arguments and Variadics in PHP 8
One of the new features of PHP 8 is named arguments. It’s one of those features that I love as an end user developer; although it can be a nightmare for library and framework developers, because argument names are now … Continue reading
Under the Radar? A Backwards-Compatible Break for SPLFixedArray in PHP 8
The official release date for PHP 8 is 26th November, just 9 days away, so we’re almost into the last week; and I’ve just discovered a change to SPLFixedArray that I wasn’t previously aware about. While not many developers use … Continue reading
Filtering and Mapping with SPL Iterators
Four or five years ago, the most popular talk that I gave at conferences was entitled “A Functional Guide to Cat Herding with PHP Generators” (the cats proved a very enjoyable talking point at every event where I gave it, … Continue reading
Posted in PHP
Tagged CallbackFilterIterator, FilterIterator, IteratorIterator, Iterators, PHP, SPL
Leave a comment
Parallel Looping in PHP with SPL’s MultipleIterator
There was a time, back when I was working with PHP 5, when I found the Standard PHP Library (SPL) an extremely powerful and useful toolbox; and I particularly enjoyed working with SPL’s Iterators and Datastructures. Sadly, SPL was always … Continue reading
Withdrawal from Speaking at PHPCE 2019
I’m always nervous when I speak at a conference or in front of a user group; but I also enjoy sharing my passion and excitement for things that I’ve learned, or new tools that I’ve discovered. That makes it particularly … Continue reading
Using PHP Anonymous Classes as Package Private Classes
I’ve written before about the benefits of using PHP’s Anonymous Classes for test doubles; but Anonymous Classes also have potential usecases within production code as well. In this article I’m going to describe one such usecase that can be particularly … Continue reading
Discharging Static #2
In the first article in this series, I wrote about the problems with testing static methods in classes, and showed a few approaches that allow us to write mocks for statics. Testing classes where we have static properties is a … Continue reading