A mesma verificação em vários métodos

22 views
Skip to first unread message

Cauan Cabral

unread,
Jun 22, 2012, 5:57:02 PM6/22/12
to PHPMS
Estava olhando a implementação da API do MoIP[1] e uma coisa me chamou atenção: quase
todos os métodos tem uma verificação para saber se as configurações estão setadas.

Pensei em "automatizar" essas verificações usando o método mágico __call mas ele só é invocado
quando a mensagem envolve um método inacessível (ou que não existe, ou que não é público).

Alguém já pensou no problema? Como aplicaria o DRY nesse contexto?


[1] - https://github.com/moiplabs/moip-php/blob/master/lib/MoIP.php

Abraço,
--
Cauan Cabral
----------------
Como falar comigo: Google Talk: cau...@gmail.com Skype: CauanCabral MSN: cau...@gmail.com
Onde me encontrar: LinkedinFacebookWordpressTwitterOrkut


Bruno Gasparetto

unread,
Jun 24, 2012, 7:07:34 PM6/24/12
to ph...@googlegroups.com
Só de criar alguns métodos para efetuar as verificações já reduziria bastante a reescrita e possíveis erros de mensagens das exceções. Por exemplo, nas linhas 913 e 943 é feito o mesmo teste e disparada a mesma mensagem na exceção, se fosse um método só pra este teste reduziria as chances de mensagens diferentes (neste caso uma exceção específica seria melhor do que só disparar uma exceção).

A sua ideia usando __call seria tornar os métodos privados e fazer uma lista de métodos a serem executados antes, quase como aplicar um decorator?

Uma possibilidade é alterar o desenho da classe, dividindo-a de forma que os itens testados constantemente sejam obrigatórios já na instanciação do objeto.

--
Você recebeu esta mensagem porque está inscrito no Grupo "phpms" em Grupos do Google.
As regras de utilização deste grupo encontram-se em: http://www.phpms.org/regras-da-lista
Para postar neste grupo, envie um e-mail para ph...@googlegroups.com
Para cancelar a sua inscrição neste grupo, envie um e-mail para phpms-un...@googlegroups.com
Para ver mais opções, visite este grupo em http://groups.google.com/group/phpms?hl=pt-PT
Para acessar o site do grupo, visite: http://www.phpms.org/



--
Bruno Gasparetto
Reply all
Reply to author
Forward
0 new messages