Executando verificação de segurança...
6

um exemplo real de onde fn é mais útil:

$user = User::query()
    ->when($id, fn ($query) => $query->where('id', $id))
    ->when($email, fn ($query) => $query->where('email', $email))
    ->when($document, fn ($query) => $query->where('document', $document))
    ->first();

ficou uma sintaxe limpa, fácil de entender

agora considere o seguinte código:

$user = User::query()
    ->when($id, function ($query) use ($id) {
        return $query->where('id', $id);
    })
    ->when($email, function ($query) use ($email) {
        return $query->where('email', $email);
    })
    ->when($document, function ($query) use ($document) {
        return $query->where('document', $document);
    })
    ->first();

Nesse caso ficou muito pior usando o function completo.

Usar ou não usar a funcionalidade depende muito mais de onde está sendo usada do que da funcionalidade em si.

Odeio if ternário ?:

mas é muito melhor fazer algo assim:

return (permissions.length > 0) ? "admin" : "user"

do que escrever o if completo.

Tudo depende do contexto

Carregando publicação patrocinada...