¿Lanzar un NotImplementedError en PHP?

1 minuto de lectura

avatar de usuario
Berkes

¿Hay algún tipo de NotImplementedError en PHP?

Quiero agregar esto a algunos métodos auxiliares e interfaces, para advertir a las clases que me amplían, todavía tienen trabajo por hacer. ¿O esto se logra de manera diferente en PHP?

avatar de usuario
phil

PHP no tiene un incorporado NotImplementedException sin embargo, puede crear el suyo propio. Supongo BadMethodCallException se acerca a lo que sería un candidato decente para la extensión

class NotImplementedException extends BadMethodCallException
{}

… y en tu método

public function notImplementedMethod()
{
    throw new NotImplementedException();
}

También puedes simplemente hacer algo como esto.

throw new Exception('Not implemented');

  • Solo una mejora a la buena respuesta: use \BadMethodCallException y \Exception (con barra invertida) si está utilizando espacios de nombres (PHP >= 5.3.0).

    – caligari

    19 mayo 2015 a las 10:49

  • Una sugerencia: NotImplementedException debería extenderse \RuntimeException

    – caligari

    19 mayo 2015 a las 10:57

  • @Wirone A RuntimeException es un error “que solo se puede encontrar en tiempo de ejecución”. Para mí, está más cerca de un BadMethodCall porque el autor debe saber que no debe llamar al método; es determinable antes del tiempo de ejecución.

    – Juan M.

    15/09/2016 a las 19:07

  • Si el autor supiera no llamar a este método lanzar o extender LogicException Sería lo más lógico.

    – ceja blanca

    4 de enero de 2018 a las 10:43

  • Este debate no tiene sentido. Las implementaciones pueden extender lo que quieran o simplemente arrojar un simple Exception. Es completamente una opinión basada en este punto.

    – Phil

    14/02/2018 a las 20:20

¿Ha sido útil esta solución?