2

Sua publicação me fez pensar um pouco sobre o mecanismo e percebi algo observando o trecho do código que você pegou no projeto: quem desenvolveu não soube usar o próprio mecanismo de acesso a parâmetros da rota que o Laravel tem, o $this->route('parameter'). Isso pode ter acontecido por falta de atenção ou até mesmo por falta do conhecimento.

Na própria documentação (Validation - Laravel 13.x) é citado sobre isso:

[...] Also, note the call to the route method in the example above. This method grants you access to the URI parameters defined on the route being called [...]

O uso de métodos mágicos realmente é uma faca de dois gumes, mas este caso citado em específico foi por um uso tecnicamente incorreto, apesar do método mágico também funcionar para parâmetros da rota. Onde costumo ver usarem mais métodos mágicos é na obtenção de um input repassado via parâmetros query ou no body da requisição.

Apesar da publicação ser sobre a questão de validação de inputs e não sobre o Laravel em si (sendo este apenas o exemplo do caso ocorrido), vale a informação.

PS.: Também não gosto muito do uso de métodos mágicos para inputs e parâmetros no Laravel. Aprendi sobre isso no início, mas hoje faço mais uso do método $this->input() para pegar um input dos parâmetros query ou do body (principalmente por facilitar a definição de valor padrão caso o input não exista). Sempre usei o $this->route() para pegar o valor de um parâmetro da url da requisição.

Carregando publicação patrocinada...
1

Boa! Realmente, o Laravel tem métodos que pegam parâmetros de entradas específicas. Só o dynamic properties que acaba sendo meio zoado.

O uso de métodos mágicos realmente é uma faca de dois gumes, mas este caso citado em específico foi por um uso tecnicamente incorreto, apesar do método mágico também funcionar para parâmetros da rota. Onde costumo ver usarem mais métodos mágicos é na obtenção de um input repassado via parâmetros query ou no body da requisição.

No geral, qualquer recurso de qualquer linguagem que não tem uma funcionalidade determística, no sentido de que sempre irá fazer a mesma coisa independentemente do contexto ou estado, costumam causar problemas; e em muitos casos falhas de segurança (como é o caso do post).

É sempre bom evitar fazer ou usar funções não-determinísticas, exceto quando o não-determinismo é o propósito da função (como uma função que retorna um número aleatório).