Primeiras aulas do curso Doctrine ORM: Acesse o banco com Mapeamento Objeto-Relacional

Doctrine ORM: Acesse o banco com Mapeamento Objeto-Relacional

Criando o EntityManager - Introdução

Olá pessoal, sejam muito bem vindos ao treinamento de Fundamentos de Doctrine da Alura! O Doctrine é um projeto famoso com vários componentes e pacotes, e vamos estudar em detalhes o ORM (Object Relational Mapper), uma ferramenta que auxilia a mapear um modelo orientado a objetos para um modelo relacional no banco de dados.

Além disso, abordaremos rapidamente outros pacotes do Doctrine, como o componente de Collections, bastante poderoso e útil. Além de nos poupar de escrever SQL, o Doctrine nos auxilia na migração entre bancos de dados - por exemplo, facilitando a migração PostgreSQL para Oracle.

O Doctrine também ajuda no versionamento do banco de dados, ou seja, no acompanhamento das modificações do banco, o que é feito por meio de migrations.

Bastante coisa para aprender, não é? Esperamos que você goste e que esses conhecimentos sejam muito úteis para a sua carreira. Até o próximo vídeo!

Criando o EntityManager - Apresentando o ambiente

Antes de começarmos a trabalhar efetivamente com o Doctrine, conversaremos sobre o ambiente que precisaremos para executar todos os códigos desse treinamento. A primeira coisa que você precisa ter instalado é, obviamente, o PHP, e todas as informações de instalação podem ser encontradas na página inicial do PHP.

Se você estiver usando Mac ou uma distribuição Linux, essa instalação é bastante simples, pois o PHP provavelmente já vem incluído nos repositórios. No Windows, você pode clicar em "Downloads > Windows downloads" e então baixar o ZIP da versão desejada - no caso, nosso curso foi gravado na versão 7.3, portanto recomendamos a utilização dessa versão ou posteriores.

Depois de extraído o conteúdo do ZIP, teremos a estrutura de arquivos necessária para trabalhar. Então, adicionaremos o caminho desse diretório para a variável Path das variáveis de ambiente do windows. Feito isso, poderemos executar o PHP diretamente do terminal, sem que seja necessário acessar a pasta em que o PHP foi extraído.

Tendo instalado o PHP, o próximo passo é instalar o Composer, um gerenciador de dependências muito famoso e poderoso do mundo PHP. Com ele, conseguiremos instalar o Doctrine e outros componentes necessários ao longo do curso. Para fazer a instalação, basta acessar o site do Composer e clicar em "Download". No Windows, teremos que baixae o Composer-Setup.exe e seguir os passos na tela. No Max ou no Linux, basta rodar as linhas de comando que constam na página.

No final desse processo, teremos acesso ao comando composer --version no Prompt de Comando. Dessa forma, estaremos prontos para continuar o treinamento. No próximo vídeo conversaremos um pouco sobre o Doctrine. Até lá!

Criando o EntityManager - Introdução ao ORM

Agora que já estamos com o nosso ambiente configurado, começaremos a pensar no nosso projeto. Imagine que temos uma classe de negócios Aluno que, por enquanto, só possui um $id e um $nome. Precisamos mapeá-la para o banco de dados em algum momento da aplicação - ou seja, precisaremos inserir, buscar, atualizar e remover dados, que são operações básicas desse tipo de serviço.

Para isso, imagine que temos uma classe AlunoRepository que cuidará desse tipo de persistência. Ela já está utilizando algumas boas práticas, como injeção de dependência (ela espera uma conexão com o PDO), e realiza as operações, como persist() (ou seja, inserir), que escreve o $sql, faz o prepare() com o PDO e insere o $aluno.

Também temos uma busca findAll(), que realiza um SELECT do aluno e mapeia o resultado para instâncias da classe Aluno, e conseguimos buscar um único aluno pelo id com o find(), retornando uma instância de Aluno. Além disso, conseguimos atualizar ou remover um aluno.

Repare que essas operações são bem corriqueiras. E o que acontece se o aluno tiver, por exemplo, um telefone, e essa entidade seja outra tabela? Teremos que reescrever todo esse código, basicamente copiando e colando, porque o SQL muda.

Repare também que o modelo da classe do aluno no banco de dados e o modelo da tabela do aluno no banco de dados são muito parecidos, até porque mapeamos a classe do aluno pensando em como ela seria armazenada. Seria interessante, então, se tivéssemos uma ferramenta para fazermos esse mapeamento automaticamente, sem que precisássemos criar esse tipo de repositório repetidamente.

Para desenvolvedores PHP, escrever código SQL pode trazer alguns problemas, como queries pouco otimizadas. Portanto, seria interessante se tivéssemos uma ferramenta que mapeasse objetos para uma relação no banco de dados. Essa ferramenta existe, e se chama Doctrine ORM.

O projeto Doctrine tem diversos componentes que estudaremos nesse curso, mas o principal, e o foco desse treinamento, é o ORM - Object Relational Mapping, ou seja, "mapeamento objeto-relacional". Isto é, um mapeamento entre a instância de uma classe no código orientado a objetos para uma tabela/relação no banco de dados. Esse tipo de mapeamento nos poupará de reescrever diversas vezes o mesmo tipo de código genérico, aumentando a nossa produtividade.

No próximo vídeo começaremos a trabalhar com o Doctrine ORM. Até lá!

Sobre o curso Doctrine ORM: Acesse o banco com Mapeamento Objeto-Relacional

O curso Doctrine ORM: Acesse o banco com Mapeamento Objeto-Relacional possui 195 minutos de vídeos, em um total de 75 atividades. Gostou? Conheça nossos outros cursos de PHP em Programação, ou leia nossos artigos de Programação.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda PHP acessando integralmente esse e outros cursos, comece hoje!

Plus

  • Acesso a TODOS os cursos da plataforma

    Mais de 1200 cursos completamente atualizados, com novos lançamentos todas as semanas, em Programação, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.

  • Alura Challenges

    Desafios temáticos para você turbinar seu portfólio. Você aprende na prática, com exercícios e projetos que simulam o dia a dia profissional.

  • Alura Cases

    Webséries exclusivas com discussões avançadas sobre arquitetura de sistemas com profissionais de grandes corporações e startups.

  • Certificado

    Emitimos certificados para atestar que você finalizou nossos cursos e formações.

  • Alura Língua (incluindo curso Inglês para Devs)

    Estude a língua inglesa com um curso 100% focado em tecnologia e expanda seus horizontes profissionais.

12X
R$85
à vista R$1.020
Matricule-se

Pro

  • Acesso a TODOS os cursos da plataforma

    Mais de 1200 cursos completamente atualizados, com novos lançamentos todas as semanas, em Programação, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.

  • Alura Challenges

    Desafios temáticos para você turbinar seu portfólio. Você aprende na prática, com exercícios e projetos que simulam o dia a dia profissional.

  • Alura Cases

    Webséries exclusivas com discussões avançadas sobre arquitetura de sistemas com profissionais de grandes corporações e startups.

  • Certificado

    Emitimos certificados para atestar que você finalizou nossos cursos e formações.

  • Alura Língua (incluindo curso Inglês para Devs)

    Estude a língua inglesa com um curso 100% focado em tecnologia e expanda seus horizontes profissionais.

12X
R$120
à vista R$1.440
Matricule-se
Conheça os Planos para Empresas

Acesso completo
durante 1 ano

Estude 24h/dia
onde e quando quiser

Novos cursos
todas as semanas