Database-oriented Strategy configuration

This article describes a way of implementing Strategy design pattern using a database-based runtime configuration. The approach allows to dynamically (re)configure class behavior without requiring code-based rearrangements.

Laravel tutorial

This page contains all the material related to the meeting series about Laravel Development held at Magneti Cowork, Palermo, Italy.

Netgear Arlo System API

This article describes how to use Netgear Arlo Cameras API. Even though no public API is provided, I succeeded in interacting with the cameras by sniffing the traffic sent from the official web application

Load dynamic Vue components based on a prop string

Learn how to use a dynamic component by passing its name through a string prop.

Design patterns in PHP: Replace Constructors with Creation Methods

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

Design patterns in PHP: Strategy

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

Create LazyCollection from API resource

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.

Refactor data checking to cleaner implementation

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

Refactor long methods to method classes

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?

What's behind Laravel Encryption/Decryption

My system is safe, it uses encryption. You heard/said this from time to time. Sure, but why and how is it safe? Do you really know this?

Sending a test email from a Laravel application

Learn how to send a test email from a Laravel app

Learning PHP 8.1 Fibers using Tests

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

Create a custom validation rule with string alias

In this tutorial I will show how to define a Laravel validation rule providing a custom alias string to use in custom validation classes.