Bom cara .. eu nao li tudo mas lhe daria tais dicas ..
Um cliente tem endereco
Outras coisas tem endereco
Entao .. é mais conveniente endereco servir para tudo ..
$endereco ... ORM::factory('endereco');
$cliente-endereco ... $endereco;
Tabela cliente campo endereco_id
$fornecedor-endereco ... ORM::factory('endereco');
Tabela fornecedor campo endereco_id
Vc nao esta validando o endereco ..
Como uma pessoa chegou a me pedir para fazer formularios pra ela nao
preencher (isso mesmo kkk)
Vc poderia salvar o endereco mesmo sem dados .. vou aproveitar pra corrigir
isso no meu codigo tbm (erros de banco com exception, eu simplesmente mando
um erro amigavel pro user)
if(! $endereco-save()){
throw new ...Database...Exception();
}
Ai teria sentido usa try ..
Vlw pela duvida .. e fica a dica
Em 04/06/2012 19:57, "Bernardo Castro" <[email protected]> escreveu:
> A algum tempo tenho usado o bloco “tr...catch” erradamente nos sites que
> tenho desenvolvido. Por exemplo, ter duas funções em apenas um bloco catch.
> Veja o código.
>
> http://pastebin.com/3JNEnqq0
>
> Se parar para pensar esse não é um forma 100% seguro para tratamento de
> exceções. No bloco acima se o método de adicionar endereço falhar o
> cadastro do cliente vai está errado. Tinha ciencia desse problema mas não
> levava a serio.
>
> Qual seria a melhor forma de garantir o cadastro do cliente? O código
> acima foi somente um exemplo, tenho um caso real atualmente que é o
> seguinte.
> Tenho um processo de cadastro de cliente onde é necessário inserir os
> serviços adquiridos, criar a fatura, enviar e-mails de notificação.(varios
> e-mails)
>
> http://pastebin.com/UYQFuUT8
>
> *O último método de enviar e-mail “notificar” e sem dúvida o grande
> vilão, nele a grandes chances de ocorrer um erro por falha na conexão, host
> fora do ar. Etc.*
>
>
> *Criando vários blocos “catch” eu consigo gerenciar detalhadamente o
> erro caso aconteça em qualquer parte do código.*
>
> *Se a última etapa falhar, que é a de notificação, posso ainda carregar
> uma página de sucesso e avisar somente que ocorreu um erro no envio do
> e-mail.*
>
> *Se acontecer uma falha na parte de adicionar o serviço ao cliente, que
> seria muito ruim, posso simplesmente apagar o cadastro do cliente feito no
> primeiro processo.*
>
>
> *Essa seria a melhor forma de controlar os possíveis erros ? Alguém faz
> algo diferente disso?*
>
> --
> Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana
> Php" dos Grupos do Google.
> Para ver esta discussão na web, acesse
> https://groups.google.com/d/msg/kohana-php/-/PgEhMsjT0psJ.
> Para postar neste grupo, envie um e-mail para [email protected].
> Para cancelar a inscrição nesse grupo, envie um e-mail para
> [email protected].
> Para obter mais opções, visite esse grupo em
> http://groups.google.com/group/kohana-php?hl=pt-BR.
>
--
Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana Php" dos
Grupos do Google.
Para postar neste grupo, envie um e-mail para [email protected].
Para cancelar a inscrição nesse grupo, envie um e-mail para
[email protected].
Para obter mais opções, visite esse grupo em
http://groups.google.com/group/kohana-php?hl=pt-BR.