thekid / dialog

Dialog photoblog
2 stars 1 forks source link

Refactor to make use of asymmetric visibility #61

Closed thekid closed 1 day ago

thekid commented 1 week ago

This pull request changes all instances of readonly for asymmetric visibility, namely public private(set). Though readonly reads nicely, the reasoning is that if readonly had never been added to PHP, I could achieve anything I want with asymmetric visibility; and I'm happy to have one way of doing things.

The only benefit readonly provides is that properties cannot be written to it after having been initialized (typically inside the constructor) - dubbed init-once properties. As the only place I would do that would be inside the given class anyway this feels like needlessly restricting myself.

By using XP Compiler, I can still support all PHP versions >= 7.4 even though asymmetric visibility is PHP 8.4+ feature.

/cc @mikey179


⚠️ Tests are failing because the Ubuntu PHP 8.4 build on GitHub Actions is not up-to-date.

thekid commented 1 day ago

Tests are failing because the Ubuntu PHP 8.4 build on GitHub Actions is not up-to-date.

This has been fixed in the meantime, rerunning the tests now succeeded.