10 coisas para não fazer no PHP 7

O que não fazer no PHP 7

10 coisas para não fazer no PHP 7

Atenção! Essa postagem foi escrita há mais de 2 anos. Na informática tudo evolui muito rápido e algumas informações podem estar desatualizadas. Embora o conteúdo possa continuar relevante, lembre-se de levar em conta a data de publicação enquanto estiver lendo. Caso tenha sugestões para atualizá-la, não deixe de comentar!

Com o lançamento do PHP 7, surge a oportunidade de podermos, de certa forma, melhorarmos algumas práticas que vínhamos executando.

Neste post estão reunidas algumas “manias” que é melhor deixarmos de lado para poder aproveitar tudo que de melhor o PHP tem a nos oferecer.

1. Não utilize funções mysql_*

Finalmente chegou o tempo em que não seremos mais apenas orientados a não utilizar as funções mysql_*. No PHP 7 essas funções foram retiradas, o que significa que você terá que mudar para as funções (muito melhores, por sinal) mysqli_*, ou então utilizar alternativas melhores ou mais flexíveis como PDO ou um ORM.

2. Evite desperdício de código

Em outras palavras: não escreva código inútil que desperdice o desempenho. Na verdade, a velocidade no PHP 7 aumentou tanto que pode esconder alguns problemas na arquitetura da aplicação. Não se satisfaça com o desempenho da sua aplicação só porque o PHP 7 a tornou mais rápida.

Como desenvolvedor, você deve sempre cuidar da sua aplicação para que carregue apenas os recursos necessários, otimizar trechos de código (principalmente quando são críticos), escrever consultas a banco de maneira eficiente, utilizar cache quando possível e assim por diante.

3. Não utilize a tag de fechamento do PHP no final dos arquivos

Se você der uma olhada nos códigos de frameworks ou de grandes aplicações, como o WordPress, você verá que a tag de fechamento do PHP é omitida. Na verdade, o Zend Framework Coding Standards proíbe que você faça isso. Essa tag de fechamento não é obrigatória e quando você a omite no final do arquivo, está tendo certeza que nenhum espaço em branco será adicionado no final do arquivo (o que pode gerar erros).

4. Não passe por referência se você não precisa

Algumas vezes a passagem por referência é útil e necessária, mas em muitas outras vezes só torna o código mais difícil de entender e de tentar prever o resultado.

Aparentemente, algumas pessoas pensam que isso torna o código mais rápido, o que, de acordo com esta referência (em inglês), não é verdade.

Um exemplo de o porquê as referências são ruins no PHP é no que diz respeito às funções shuffle() ou sort(). Em vez de retornar o array aleatorizado ou ordenado, as funções modificam a variável original, o que pra mim não faz nenhum sentido.

5. Não faça consultas a banco em um loop

Realizar consulta ao banco de dados dentro de uma repetição é um gasto desnecessário. Gera uma sobrecarga de processamento que não se justifica, já que você pode atingir o mesmo resultado, de maneira mais rápida, realizando consultas fora da repetição. Quando caímos numa situação em que isso é necessário, muitas vezes é mais sensato realizar uma consulta e construir um array de dados e então iterar sobre esse array, sem a necessidade de ficar consultando o banco.

6. Evite utilizar * em consultas SQL

De fato esse é um problema mais do banco de dados, mas como muitas vezes nós escrevemos consultas dentro do código PHP, creio que vale a pena. De qualquer forma, evite utilizar os wildcards (caracteres coringas) em consultas SQL, especialmente se suas tabelas possuem muitas colunas.

Especifique exatamente as colunas que precisa e recupere apenas elas. Isso ajuda a diminuir a utilização de recursos do sistema, protege seus dados e torna as coisas mais claras.

Ainda no assunto SQL, saiba as funções que estão disponíveis e teste a velocidade o máximo que puder. Quando calcular médias, somas ou coisa do tipo, dê prioridade para as funções SQL em vez das funções do PHP. Se estiver em dúvida sobre o desempenho de uma consulta, teste-a e tente outras variações – não esqueça de usar a melhor.

7. Não confie nos dados de entrada do usuário

Não é sábio confiar nos dados que o usuário insere na aplicação. Sempre falo sobre isso quando o assunto é segurança. Sempre filtre, sanitize, escape, cheque e esteja preparado para problemas advindos desses dados. Dê uma olhada na minha palestra sobre segurança e programação defensiva. Existem três problemas específicos com a entrada de dados do usuário: os desenvolvedores não levam em consideração todas as possibilidades existentes, os dados frequentemente estão incorretos e esses dados podem ser intencionalmente maliciosos.

Um sistema bem projetado consegue proteger-se disso tudo. Sempre utilize funções como filter_var() para verificar a validade dos dados e prepará-los para utilização com um banco de dados. Nesse caso também é interessante utilizar um ORM e/ou Prepared Statements, que vão adicionar uma camada de filtragem à aplicação.

8. Não tente ser esperto

Seu objetivo deve ser escrever um código elegante e que expresse suas intenções o mais claro possível. Você pode conseguir melhorar aquele 0.01 segundo em cada carregamento de página se encurtar todas as variáveis para apenas uma letra, utilizar seletores ternários em diversos níveis e outras “espertices”, mas isso não é nada se comparado ao tanto de dores de cabeça que você estará causando a você mesmo e a todos ao seu redor.

Nomeie suas variáveis apropriadamente, documente seu código e opte pela clareza mais do que pela brevidade. Melhor ainda, utilize uma orientação a objetos padronizada que, mais ou menos, se documenta sozinha e evita um monte de inserção de comentários.

9. Não reinvente a roda

PHP já está por aí faz um tempinho e os sites por mais tempo ainda. É grande a probabilidade de que, qualquer coisa que você precise fazer, alguém já tenha feito antes. Não tenha medo de pedir ajuda. O Github é seu amigo. O Composer é seu amigo. O Packagist também é seu amigo.

De loggers a ferramentas de manipulação de cor, de debuggers a frameworks de teste unitário, das APIs do Mailchimp ao Twitter Bootstrap, tudo está disponível ao pressionar de um botão (ou digitar de um comando). Use!

10. Não negligencie as outras linguagens

Se você é um(a) programador(a) PHP, é uma prática padrão saber algo de HTML, CSS, JavaScript e algum banco de dados (é o mínimo)! Quando você tem um bom domínio nessas linguagens, é hora de aprender JavaScript novamente. JavaScript não é jQuery. Você deve conhecer a linguagem para utilizá-la de maneira eficiente.

Eu recomendo aprender tudo que puder sobre PHP orientado a objetos. Pode salvar sua vida e fará você programar melhor de maneira exponencial. Também abrirá porta outras linguagens como C# e Java, pois serão muito mais fáceis de aprender se você tiver a POO no seu cinto de utilidades.

Avance mais em conhecimento ao aprender sobre gerenciadores de pacotes, scripts de build, CoffeeScript, LESS, SASS, YAML, template engines e outras ferramentas fantásticas. Recomendo também que você estude frameworks (existem várias opções boas por aí, como Zend Framework e Laravel).

Quando já estiver se dando bem com tudo isso, o que acha de aprender Python, Ruby, Ruby on Rails, desenvolvimento pra Android, iOS e por aí vai? Você deve deixar seus preconceitos de lado. Pode achar que isso não serve pra você porque está fora da sua zona de conforto, as coisas que você precisa pro seu emprego. Mas é justamente esse ponto! Cada linguagem possui algo útil e um pouco a mais de conhecimento não faz mal a ninguém. Não é por acaso que os melhores programadores PHP que conhecemos possuem conhecimento em outras linguagens de programação.

Tudo pronto? Que venha o PHP 7!

Espero que tenham gostado do post e que, de certa forma, possa ajudá-los a melhorar suas práticas de desenvolvimento.

Não deixem de comentar e de sugerir modificações e postagens aqui no blog.

Um abraço a todos e fiquem com Deus.
Rafael Jaques

Adaptado do original: https://kinsta.com/blog/10-things-not-to-do-in-php-7/