10 coisas para não fazer no PHP 7
Por: Rafael Jaques
Com o lançamento do PHP 7, surge a oportunidade de podermos, de certa forma, melhorarmos algumas práticas que vínhamos executando.
Neste artigo estão reunidas algumas “manias” que é melhor deixarmos de lado para poder aproveitar tudo que de melhor o PHP tem a nos oferecer.
- Não utilize funções mysql_*
- Evite desperdício de código
- Não utilize a tag de fechamento do PHP no final dos arquivos
- Não passe por referência se você não precisa
- Não faça consultas a banco em um loop
- Evite utilizar * em consultas SQL
- Não confie nos dados de entrada do usuário
- Não tente ser esperto
- Não reinvente a roda
- Não negligencie as outras linguagens
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.
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.
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).
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.
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.
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.
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. 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.
Seu objetivo deve ser escrever um código elegante e que expresse suas intenções de forma mais clara 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.
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!
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.
Fonte: iMasters
Texto original:
http://imasters.com.br/linguagens/php/10-coisas-para-nao-fazer-no-php-7/?trace=1519021197&source=home