Tutorial de POO em PHP8
Fundamentos
Introdução
Classes e Objetos
Propriedades
Métodos
Parâmetros de Métodos
Propriedades dentro de Classes
Métodos dentro de Classes
Construtor
Propriedades via Parâmetros do Construtor
Propriedades Privadas
Métodos Privados
Getters de Propriedades
Setters de Propriedades
Vantagens de Setters e Getters
Avançado
Arquivos de Classes
Cadeias de Métodos na Classe
Classe como um Conjunto de Métodos
Arrays de Objetos
Objetos dentro de Classes
Operador de Recuperação Segura
Operador de Recuperação Segura em Cadeias
Manipulação de Objetos em Classes
Passagem por Referência
Operador instanceof
Herança
Herança de Classes
Herança de Métodos Públicos
Métodos da Classe Filha
Sobrescrevendo Métodos da Classe Pai
Chamando o Método Sobrescrito
Construtor na Herança
Métodos Privados na Herança
Propriedades Privadas na Herança
Problema das Propriedades Privadas na Herança
Métodos Protegidos
Propriedades Protegidas
Operador instanceof e Herança
Desafios
Nome da propriedade a partir de uma variável
Nome da propriedade a partir de um array
Nome da propriedade a partir de um array associativo
Nome da propriedade a partir de uma função
Nome da propriedade a partir de um objeto
Método a partir de uma variável
Chamada após a criação
Static
Métodos Estáticos
Métodos Estáticos dentro da Classe
Propriedades Estáticas
Propriedade Estática dentro da Classe
Chamada através da Classe e do Objeto
Combinação com static
Métodos Estáticos e $this
Exemplo
Funções
Obter nome da classe
Obter métodos da classe
Obter propriedades da classe
Obter propriedades do objeto
Verificar existência da classe
Verificar existência do método
Verificar existência da propriedade
Obter classe pai
Verificar herança de classe
Verificar pertencimento do objeto
Obter todas as classes declaradas
Resumo
Interfaces
Introdução às Interfaces
Prática na Aplicação de Interfaces
Regras de Nomenclatura de Interfaces
Aplicando Interfaces
Parâmetros de Métodos na Interface
Declarando o Construtor na Interface
Herança de Interfaces entre Si
Interfaces e instanceof
Implementação de Várias Interfaces
Herança de Classe e Implementação de Interface
Constantes em Interfaces
Funções para Interfaces
Traits
Introdução a Traits
Múltiplas Traits
Conflitos de Métodos
Modificadores de Acesso
Alteração de Direitos de Acesso a Métodos da Trait
Prioridade de Métodos
Métodos Abstratos
Traits em Traits
Funções para Traits
Magia
Introdução
Método __toString
Obtendo propriedades
Propriedades somente leitura
Lendo uma propriedade inexistente
Definindo propriedades
Escrevendo em uma propriedade inexistente
Verificando propriedades ao escrever
Prática
Namespaces e Autocarregamento
Introdução aos namespaces
Sintaxe de namespaces
Subnamespaces
Chamada simplificada de classes
Namespaces em arquivos
Caminhos relativos em namespaces
O comando use
Conectando múltiplas classes
Comando use e caminhos relativos
Apelidos para classes
Autocarregamento padrão de classes
Regras de autocarregamento
Autocarregamento personalizado de classes