-
Recent Posts
- Type the List: A Proposal to support type-casting in PHP’s list language construct
- Default the List: A Proposal to support default values in PHP’s list language construct
- Splat the List: A Proposal to support Variadics in PHP’s list language construct
- List-o-mania
- PHP 8.2 – The Release of Deprecations
Recent Comments
Archives
- 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
Discharging Static #1
It’s been seven years since Kore Nordmann first published “static considered harmful” on his blog, explaining the problems with using static method calls in classes, and the difficulties that they cause when trying to test that class. Seven years on, … Continue reading
Closures, Anonymous Classes and an alternative approach to Test Mocking (Part 4)
In a prior article in this series, I described the use of a SpyMaster Class to create proxy spies as anonymous classes, that allow external visibility (and potentially update) of protected and private properties within an object. The same basic principle … Continue reading
Extending final Classes and Methods by manipulating the AST
We know that we should always write unit tests for our code, and mock dependencies; but that isn’t always easy when we need to mock classes define as final, or that contain final methods. This isn’t normally a problem when … Continue reading
Closures, Anonymous Classes and an alternative approach to Test Mocking (Part 3)
I have heard people say that you shouldn’t test abstract classes or traits, only the concrete classes that implement or use them. I don’t follow that approach: unit testing is all about testing in isolation from anything that might affect those … Continue reading
Closures, Anonymous Classes and an alternative approach to Test Mocking (Part 2)
The last time I posted here, I was writing about Anonymous Functions and how they can be bound to any object (or class) to execute as though they are a method within the scope of that class (Closure Binding as … Continue reading
Closure Binding as an alternative to “use” variables
As a general rule when creating a Closure, arguments are passed when the function is called, but “use” variables (I’m sure that they have a formal name, but have no idea what it might be, so I just refer to … Continue reading
Closures, Anonymous Classes and an alternative approach to Test Mocking (Part 1)
Since their first introduction with PHP 5.3, Closures have proven an incredibly useful feature for writing simple callback code, making it cleaner and more intuitive. Anonymous Functions can be used inline for many of the array functions $price = 100.00; … Continue reading
Heroes of PHP™ #3
Last year at Christmas I posted my original 24 Heroes of PHP™, with a second post listing a further 24 of my heroes at New Year. I’ve decided to repeat the exercise this year, although my list this time is … Continue reading
Musings of a PHPDiversity Rainbow Elephpant
IT’S HAPPENING! Finally, the kickstarter is happening! And I’m ecstatic. I’d so been hoping that the kickstarter would be launched last Friday, and it felt frustrating when the day ended, and I hadn’t heard anything back from the kickstarter review team. And then I … Continue reading
Musings of a PHPDiversity Rainbow Elephpant
I’M REAL! I’M REAL! I know that I shouldn’t shout; but I just want to tell the whole world that I’M REAL! I’M HAPPENING! I’M A REAL ELEPHPANT! When Mark got home from work this evening, he found me sitting in … Continue reading