This article describes a TDD (Test Driven Development) approach to implement a Finite State Machine (FSM) using PHP+Laravel. However, such method is general and could be used in the programming language of your choice.
In the previous article TDD IMPLEMENTATION OF FINITE STATE MACHINE (FSM) WITH LARAVEL I discussed a basic approach for implement a Finite State Machine (FSM) on a Laravel model. In this article I will further discuss the topic by applying a more engineered approach. It involves the usage of the State pattern
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.
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
This tutorial describes a TDD approach to refactor code to Strategy pattern. Starting from working code and some test, refactoring steps are applied to obtain cleaner code
LaravelVisitor is a Visitor Design Pattern implementation for Laravel. It allows to easily execute processing of collections of arbitrary elements, without requiring to use repeated conditionals, thus improving code abstraction.
Laravel 6 introduced the LazyCollection, a different kind of collection which exploits php generators to save memory usage. While data fetching from database is natively managed by eloquent, Web API-based data fetching is not provided. This article describes how to use a paginated api endpoint to fetch data to a LazyCollection instance.
Very often you find yourself in situations where you need to make your data pass some kind of checks or filters before doing something with them. This post shows how to make a first attempt approach better and cleaner
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?