This tutorial describes a TDD approach to refactor code to Replace Constructors with Creation Methods pattern. Starting from working code and some test, refactoring steps are applied to obtain cleaner code
Classes with a lot of lines of code are generally bad.
Too many responsibilities, low cohesion, or both.
However, sometimes it is not possible to make functions smaller. Reasons could be various.
What can be done in this circumstance?
PHP 8.1 introduced the new Fiber class (see the proposed RFC here https://wiki.php.net/rfc/fiber), which allows running coroutines inside your script, i.e. two functions executing simultaneously
I released on GitHub a PHP library for querying and editing data on the Tado Thermostat System.
It is integrated in Laravel 5.x for quick setup in this excellent framework.