0
respostas

Refatorando classe AluraMais

Sem utilizar a classe Slug para facilitar, criei duas formas de refatorar esse código: Utilizando variáveis no retorno

    public function recuperarUrl(): string
    {
        $categoriaFormatada = str_replace(' ', '-', strtolower($this->categoria));
        $nomeFormatado = str_replace(' ', '-', strtolower($this->nome));
        return 'http://videos.alura.com.br/' . $categoriaFormatada . '/' . $nomeFormatado;
    }

Utilizando variáveis no retorno e uma função interna

    public function recuperarUrl(): string
    {

        function formataParaUrl($input) {
            return str_replace(' ', '-', strtolower($input));
        }

        $categoriaFormatada = formataParaUrl($this->categoria);
        $nomeFormatado = formataParaUrl($this->nome);
        return 'http://videos.alura.com.br/' . $categoriaFormatada . '/' . $nomeFormatado;
    }

Utilizando a classe Slug, a refatoração é a mesma do instrutor, então não há necessidade de repetição