Diferentes estratégias de log utilizando Strategy Pattern com PHP

Se você já desenvolveu qualquer tipo de aplicação já deve ter sentido a necessidade de registrar logs, seja para rastrear algum tipo de erro ou para saber se a aplicação está realizando os processos corretamente, principalmente se a aplicação rodar como um serviço ou em plano de fundo.

Existem diferentes estratégias para registrar logs, acredito que o método mais comum seja registrar em um arquivo de texto, porém você pode querer registrar no console, em um banco de dados ou até mesmo utilizar algum serviço externo como o Sentry. Você pode inclusive utilizar várias estratégias ao mesmo tempo em uma mesma aplicação.

Uma das soluções nessa situação é desenvolver uma biblioteca de log utilizando o padrão de projeto Strategy Pattern para lidar com essas diferentes estratégias. Neste artigo vou apresentar desde um exemplo mais simples até um exemplo utilizando Strategy Pattern para registro de logs.

Código fonte disponível em: https://github.com/rafaelcouto/diferentes-estrategias-de-log-utilizando-strategy-pattern-com-php

Simple Factory com PHP

O Simple Factory é uma técnica que nos auxilia na criação de objetos, evitando a repetição de código e facilitando à adição de código novo. Diferente do padrão Factory e Abstract Factory, o Simple Factory não é considerado um Design Pattern, porém é uma técnica muito útil em diversas situações.

A maioria dos artigos que vemos por ai possuem exemplos muito abstratos, utilizando animais ou carros. Neste artigo pretendo trazer um exemplo mais próximo do mundo real.

Se você já trabalhou em alguma aplicação com área financeira já deve ter precisado implementar a geração de boletos. Apesar de haver uma certa padronização, cada banco implementa o boleto com suas particularidades, principalmente na geração do Nosso Número, que é o número de controle do boleto no banco.

Neste artigo, veremos desde um exemplo mais simples sem orientação à objetos até o exemplo utilizando o Simple Factory, para a geração do Nosso Número do boleto.

Código fonte disponível em: https://github.com/rafaelcouto/simple-factory-com-php.