Olá pessoal, tudo bem? Fiz o curso de PHP+MYSQLII e lá refatoramos nosso código para trabalhar com OO, minha dúvida é, usando laravel, onde crio minhas classes? Elas serão controladores também? Vou dar um exemplo do que estou falando. Veja o seguinte formulário: http://imgur.com/a/DMZhI parece fazer sentido criar uma classe para cliente, pois ele tem um tipo, um nome, um email, poderia ter um tipo de imposto diferente... Sei que poderia criar uma model para Cliente, mas considere o seguinte código, parte dos dados vêm do formulário, parte deve vir de algum tratamento de uma classe que estende de Cliente. Essa forma de inserir está certa? O código parece meio feio, o que vocês mudariam?
public function cadastra(OsRequest $osRequest){
//recebe os valores do formulário
$params = $osRequest->all();
//variáveis vazias para não dar pau na hora de inserir (pq se o tipo for pessoa fisica, getCnpj não existe (isso não parece muito inteligente))
$cpf = '';
$cnpj = '';
//verifica se é pessoa física ou jurídica
if($params['tipo'] == 'pj'){
$cliente = new PjurController($params);
$cnpj = $cliente->getCnpj();
}else{
$cliente = new PfisController($params);
$cpf = $cliente->getCpf();
}
$pago = isset($params['pago']) ? 1 : 0;
//insere todos os dados (parece feio também)
Os::create(['nome'=>$cliente->getNome(), 'email'=>$cliente->getEmail(), 'descricao'=>$params['descricao'],
'preco'=>$params['preco'], 'pago'=>$pago, 'categoria_id'=>$params['categoria_id'],
'imposto'=>$cliente->calculaImposto(), 'cnpj'=>$cnpj, 'cpf'=>$cpf, 'tipo' => $params['tipo'],
'_token'=>$params['_token']]);
return redirect()->action('OsController@formNovo')->withInput(Request::only('nome'));
}