Eventos com Codeigniter 3, criando biblioteca de eventos.

Vamos criar nossas classes de eventos,
Para organizar melhor nossa aplicação vamos criar um nova pasta Events, na pasta application.
Assim teremos a seguinte estrutura.
 — application/
 — Events/

É importante lembrar que vamos precisar ativar composer no codeigniter, existem vários tutorias para nos ajudar a realizar essa tarefa.

Agora vamos criar nossas classes de eventos.
Para ficar padronizado nossas implantarão um método padrão handler.

Aqui seria importante criarmos uma interface, dessa forma teríamos um padrão seguindo o conceito do solid. Mas não vamos.

Vamos para a primeira classe de Evento application/Events/RegisterUserMailerEvent.php.

Pronto agora vamos criar nossa classe application/Events/RegisterUserSMSEvent.php.

Pronto agora temos nossas classes criadas e prontas para serem executadas.
Agora já podemos usar a combinação nossa library Events e assim usar de maneiro bem simples os eventos no nosso projeto.
Vamos a um exemplo simples.

Agora vejamos com nosso código ficou interessante do ponto de uso e clareza no código.
Se levarmos em conta que agora com uma unica chamada teremos várias ações de uma maneira bem simples e fácil manutenção.

Mas nosso código pode melhorar.
Imagine agora ter que acessar todos os construtores dos controllers, models ou onde achar que deve ter algum evento. Adicionar em cada um deles nossos registros de eventos.
Isso não seria nada produtivo e também muito trabalho, sem contar que manutenção disse serial horrível.
Ex. se quisemos nesse momento registrar uma nova classe para o evento ’create:user’, e esse evento estivesse sendo usando em outras 10 lugares do sistema. caóóóóóótico.
Então vamos refatorar nossa código.