Suponhamos que em um banco de dados exista uma tabela representando os orçamentos, uma tabela representando os impostos, e uma tabela representando o relacionamento entre orçamento e impostos, exemplo:
tabela orcamentos: id, valor tabela impostos: id, nome tabela pedido: id, id_orcamento, id_imposto, total
Para passar para o método de calcular de impostos a instancia de um dos registros da tabela de impostos, pensei em algo do tipo:
$orcamento = new Orcamento(); $orcamento->valor = $request('valor'); $orcamento->salvaNoBanco();
$pedido = new Pedido(); $pedido->id_orcamento = $orcamento->id(); $pedido->id_imposto = $request('id_imposto');
$imposto = new Imposto(); $imposto->encontraPeloId($pedido->id_imposto);
$calculadora = new CalculadoraDeImpostos();
$pedido->total = $orcamento->valor + $calculadora->calcula($orcamento, new $imposto->nome());
$pedido->salvaNoBanco();
Está correto e é uma boa abordagem? para min isso deixa abertura para erros como nomes de impostos incorretos, falta de implementação de classes que não estão registradas no banco de dados.