Caso práctico de uso de la desconocida y olvidada constante mágica __FUNCTION__ > Blog | Josep Salvà - Desarrollo Web

La palabra de Wifft

En PHP, la constante mágica __FUNCTION__ almacena un string con el nombre del método o función desde la cual es invocada.

Por ejemplo:

function  foo(): string
{
    return __FUNCTION__;
}

echo foo(); //Imprime "foo";

Ello puede ser útil por ejemplo en Laravel, cuando tenemos un método de controlador que implemente el trait AuthorizesRequests para validar las peticiones (siempre que el método dentro de la política de seguridad sea identico al de la función desde la que es invocada).

...
final class FooController extends Controller 
{
    use AuthorizesRequests;

    public function create(Model $model): JsonResponse
    {
        $this->authorize(__FUNCTION__, [$model::class, $model]);
    }
}

BONUS: En caso de que necesitemos obtener el nombre completo dentro de un objeto (Ej: Foo::bar()) podemos utilizar la constante mágica __METHOD__.