Services

Um controller executando regra de negócio gera um problema, reutilizar funções de um controller é extremamente chato, uma vez que ele exige receber um $response (e as vezes um $request), por isso é recomendavel que se utilize services para desenvolver a regra de negócio do projeto e a execute dentro do controller.

Arquivos de services podem ser criados em /app/Services como:

namespace App\Services;

class Product {
    public function getProduct($id) {
        // ...
    }
}

Com o service criado, consumi-lo é simples:

use \App\Services\Product as ProductService;

class Product {
    public static function getProduct($request, $response) {
        // ...
        
        $productService = new ProductService();
        return $productService->getProduct($id);
    }
}

Agora é simples reutilizar as funções dos services conforme necessário.

Last updated