Olá.
Estou estudando DEV a pouco tempo aqui nos cursos da Alura. Eu peguei o projeto do curso "PHP e MySQL: Introdução a uma webapp" que é um "blog" simples com página de administração dos artigos e refatorei ele usando os conceitos mostrados no curso de PDO :
PDO, Composer (Autoload), Injeção de Dependência, Static Creation Method, Repositório, Tratamento de erros (Exceptions)
O código está no github: https://github.com/risaltte/PHP-e-MySQL-PDO---BLOG---Alura---Refatorado
Sou novo na área e gostaria de ter um feedback do código, se a forma de aplicar os conceitos está correta.
Eu adicionei um arquivo "error-page.php" para tratar as Exceptions. Não sei se fiz da melhor forma, mas foi o que fiz com os conhecimentos adiquiridos até agora.
A criação do conexão eu fiz um pouco diferente, peguei na documentação do PHP.
Uma duvida, eu não criei uma classe Artigo (Modelo) para tratar os Artigos como Objetos, para esta aplicação não consegui ver necessidade de fazer isso, pois da forma que está atende o que precisa ser feito, eu apenas faço as queries no banco assim como no projeto original. Gostaria de saber se existe algum motivo para criar a Classe artigo, pois aumentaria o código, o deixaria mais complexo e no fim o resultado seria o mesmo. Mas queria saber se mesmo assim existe razão para fazer isso assim como foi mostrado no curso de PDO com a classe "Students", algum motivo que eu não tenha entendido a necessidade.
Eu ia implementar também o controle de transação, mas obeservei que nos métodos do repositório faço apenas um INSERT, UPDATE por vez e não vários de uma vez. Nesse caso de fazer um INSERT/UPDATE por vez quando tem erro o PDO lança uma Exception é necessário ter controle de transação para uma unica alteração por vez?