1
resposta

A forma <Classe>::<método> é um padrão?

Na aula "Instalando e configurando o Doctrine" notei essa forma de chamar o méodos Setup::createAnnotationMetadataConfiguration(), EntityManager::create(...), essa forma de chamar um método é um padrão de projeto? Caso não, como e por quê é utilizado dessa forma?

1 resposta

Oi Júlio, tudo bem?

Essa é a forma (sintaxe) que PHP usa para chamar métodos estáticos de uma classe, não é algo específico do Doctrine não. Não tem muito segredo para invocar esse tipo de método, é exatamente dessa forma que vc definiu no título da pergunta.

Métodos estáticos são métodos que podemos invocar de dentro de uma classe sem a necessidade da criação de uma instância (objeto). Pelo fato do método não ter a necessidade de utilizar o escopo de objeto ($this) algumas pessoas preferem definir o método de forma estática. Criar métodos estáticos dentro de uma classe vai muito da experiência do desenvolvedor, muitas pessoas que estão começando tem dificuldade em saber quando usar.

Para definir um método como estático basta utilizar a palavra static, exemplo:

        class MinhaClasse
        {
                public static function olaMundo(): string
                {
                        return 'Olá mundo';
                }
        }

        echo MinhaClasse::olaMundo();
        //imprime Olá mundo;

Sugiro que faça os treinamentos de orientação a objetos com PHP presentes aqui na Alura (:

Qualquer dúvida estou à disposição, abraço.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software