Trabajando a través de varias capas de un programa diseñado de arquitectura MVC, me parece que me gustaría obtener más información sobre el resultado del retorno de método de una capa más profunda, y que no siempre puedo prever cuándo necesitaré esta información. Y, en aras de la abstracción, es posible que no desee que ese método genere material para el registro específico de la aplicación (ese método podría usarse en un programa diferente) o que tenga un comportamiento específico dependiente de la aplicación como otras capas anteriores.¿Es buena/práctica de programación de sentido común hacer que todos los métodos devuelvan un objeto MyResult en PHP?
Por ejemplo, en una función de utilidad dada puedo tener varias verificaciones de requisitos previos antes de ejecutar una acción, que fallan. Si devuelvo falso en alguno de ellos, la persona que llama no sabe lo que sucedió. Si devuelvo falso y registro en el registro de la aplicación lo que sucedió, estoy limitando esa función al comportamiento específico de la aplicación.
La pregunta es: ¿es buena/común aplicar una pequeña clase llamada MyResult y hacer que devuelva el estado de respuesta (correcto/falso), un mensaje, un código entero eventual y un marcador de posición de objeto (matriz u objeto) donde la persona que llama podría acceder al objeto devuelto? Esta clase MyResult se usaría en todo el sistema y sería un "dialecto" común entre todos los métodos y sus interlocutores. Todos los métodos devolverían una instancia de MyResult, todas las veces.
¿Qué, todos ellos? 'getInitialsFromName()'? – Amadan
¿Existe alguna razón por la cual no pueda usar Excepciones? Puede extender una excepción y completarla con la información que necesita, pero al menos crea el objeto solo cuando hay una excepción, no siempre. La idea de funciones que crean un objeto de retorno no importa, lo que parece un poco exagerado. – magma
@magma Bueno, siempre he considerado las excepciones como solo eso: excepciones ... Y detestaba poner todo en bloques de captura de prueba. En mi libro, las excepciones deberían estar bien para manejar algunos casos extraordinarios, y/o para facilitar el "envío de mensajes" a través de componentes de diferentes bibliotecas en un uso menos frecuente. Pero estoy de acuerdo en que tener un objeto MyResult creado con el propósito específico de ser devuelto como respuesta podría ser excesivo ... –