28 de nov. de 2024
0
minutos
Em sistemas antigos, é comum encontrarmos código legado escrito em versões descontinuadas do PHP, como PHP 4. Embora esse código possa ainda funcionar, ele provavelmente não é otimizado e carece de boas práticas modernas. Neste post, vamos demonstrar um exemplo de código legado em PHP 4 que lê e escreve arquivos CSV. Em seguida, apresentaremos uma versão otimizada usando PHP 8.4 e o padrão MVC, com melhorias de segurança, performance e legibilidade.
Exemplo de Código Legado em PHP 4
O código abaixo é uma função simples para ler um arquivo CSV, tratar o conteúdo e escrever os dados formatados em um novo arquivo CSV. Esse exemplo ilustra como o código era comumente estruturado em versões legadas do PHP:
Problemas com o Código Legado:
Acoplamento: A função processCSV faz a leitura, o processamento e a escrita de dados em uma única função, o que torna o código difícil de manter.
Validação Limitada: Não há verificações detalhadas de erros, o que pode levar a falhas silenciosas.
Falta de Organização: O código não segue padrões de organização como MVC, que separa lógica de negócio, dados e apresentação.
Código Otimizado em PHP 8.4 Usando MVC
Agora vamos ajustar esse código com PHP 8.4, usando o padrão MVC e boas práticas modernas de programação. Dividiremos o código em três componentes principais:
Model: Lógica de manipulação do CSV
Controller: Controla o fluxo e a lógica de negócios
View: Embora este exemplo não tenha uma saída visual, o View pode ser uma mensagem final de conclusão
Estrutura de Pastas:
markdown
Copiar código
app/
├── Controllers/
│ └── CsvController.php
├── Models/
│ └── CsvHandler.php
└── Views/
└── CsvView.php
Passo 1: Model - CsvHandler.php
No Model, colocamos a lógica para ler, processar e escrever o CSV. O Model é responsável apenas pela manipulação de dados e contém métodos reutilizáveis.
Passo 2: Controller - CsvController.php
O Controller controla o fluxo entre o Model e a View. Ele recebe as solicitações, instancia o Model e direciona para a View.
Passo 3: View - CsvView.php
Neste exemplo, o View é bem simples, mas em um sistema real poderia incluir uma interface para o usuário enviar arquivos e visualizar relatórios.
Executando o Código
Agora, para executar o processamento de CSV, podemos criar um arquivo index.php para instanciar o CsvController e chamar o método handleRequest.
Explicação do Processo de Otimização
Modularização e Padrão MVC: Ao dividir o código entre Model, Controller e View, garantimos uma melhor organização. O Model CsvHandler agora lida com a lógica de manipulação dos dados, enquanto o Controller CsvController é responsável pelo fluxo entre o Model e View.
PHP 8.4 e Funções Modernas: Utilizamos array_map e a função fn para manipular o array de dados de maneira mais elegante e concisa, o que torna o código mais legível e performático.
Tratamento de Exceções: Foi adicionado um try-catch para capturar erros durante a leitura e gravação de arquivos. Isso permite um controle mais robusto e seguro.
Responsabilidade Única: Cada classe tem uma responsabilidade única, seguindo o princípio SOLID, que facilita futuras manutenções e atualizações.
Comentários e Anotações: Cada função e método possuem anotações para descrever suas funcionalidades, o que ajuda na compreensão do código.
Conclusão
A atualização de um código legado em PHP 4 para uma versão moderna em PHP 8.4 com MVC não só melhora a organização, mas também traz ganhos de segurança, desempenho e escalabilidade. Com boas práticas como tratamento de exceções e modularização, seu sistema estará melhor preparado para futuras manutenções e integrações.
João Coelho
CEO
Veja mais