desenvolvimento para web

Dicas para otimizar códigos PHP

Toda as linguagens de programação modernas foram idealizadas e são feitas de modo a permitir fazer a mesma tarefa de inúmeras maneiras diferentes. Esse “todos caminhos levam a Roma” da programação moderna é bastante útil, já que o desenvolvedor tem a oportunidade de escolher por quais jeitos vai guiar sua programação e quais caminhos seguirá para implementar seus projetos. Com o PHP não poderia ser diferente: ao programar com PHP, além de ser bem tranquilo, é possível implementar diversas soluções de diversas maneiras diferentes.

Mas esta liberdade toda, se mal utilizada, pode prejudicar a performance e qualidade de um projeto. Através de más práticas de programação PHP alguém pode fazer o desempenho de um sistema inteiro ficar aquém de suas potencialidades, caso este tivesse sido programado de maneira “adequada”. Existem algumas pequenas dicas que são fáceis de seguir – não interferem em nada a lógica do programa e modus operandi do progamador PHP – e surtem bons resultados, rumo à otimização e ganho de desempenho e performance de seus scripts.

Otimização de saída de dados

O PHP permite o processamento server side das soliticações feitas no lado do cliente. É muito importante, então, uma boa performance ao exibir o resultado deste processamento feito no lado do servidor, já que o front-end de uma aplicação ou sistema deve ser fácil de usar e rápido ao responder requisições.

Use “echo” ao invés de “print”

Dentre as duas funções que permitem a exibição de informações – o “tal” processamento server-side -, as funções echo e print são as mais conhecidas. Entretanto, usar a função echo é melhor, já que, apesar de ambas servirem e realizarem a mesma coisa – exibir saídas e informações – o desempenho de echo é melhor.

Portanto, prefira utilizar echo()!

Aspas simples e aspas duplas

Para exibir em tela o conteúdo de uma variável, é possível utiliza as duplas (“) e escrever a variável juntamente com o restante da exibição; ou utilizar aspas simples (‘) e concatenar as variáveis (.) com o restante da saída, de certa forma “isolando” as variáveis do restante da exibição em tela.

É melhor usar aspas simples com “isolamento” das variáveis ao invés de aspas duplas com as variáveis juntamente ao restante do conteúdo. Portanto, prefira usar:

// maneira menos eficiente
echo "Esta é uma maneira menos eficiente de exibir uma $var!";
 
// maneira mais eficiente
echo 'Esta é uma maneira mais eficiente de exibir uma ' . $var . '!';

E há ainda uma maneira ainda rápida e com melhor performance no PHP. Apesar de ser um pouco estranha esta sintaxe – pelo menos para mim -, os resultados em passar múltiplos parâmetros à função ao invés de realizar concatenação são mais satisfatórios:

// maneira muito eficiente (com sintaxe estranha...)
echo 'Maneira muito mais eficiente de exibir uma', $var, '!';

Otimização de loops

Não há que se falar em fazer um web site ou sistema em PHP sem falar em loops. E já que são tão utilizados – justamente por serem tão indispensáveis -, é mais do que importante fazer loops PHP de ótima performance.

Especifique previamente uma variável para loops “for”

Uma coisa muito comum de se fazer quando se está programando em PHP é pegar a quantidade de “qualquer coisa” e, com ela, realizar um loop for para realizar outra “qualquer coisa”. E são muitos os programadores que, por falta de conhecimento ou preguiça, fazem isso:

for ($i = 0; $i <= mysql_num_rows($resultado); $i++) {
    [codigo]
}

Quando, na verdade, isso acarreta em um processamento extra para cada iteração. Especificando previamente e colocando numa variável quantas vezes o looping vai acontercer, a carga de processamento fica menor e, consequentemente, seu código fica otimizado:

$total = mysql_num_rows($resultado);
for ($i = 0; $i <= $total; $i++) {
    [codigo]
}

Otimização de variáveis e funções

Desnecessário comentar sobre a importância de variáveis e funções em um script PHP, por mais simples que seja. Otimizar funções e variáveis é mais que necessário, caso se esteja buscando um desempenho excelente. Essas são dicas rápidas e eficientes:

Mais sobre otimização de códigos PHP

É de se imaginar que, pela “tradição” que tem o PHP e a extensão que lhe é característica, estas dicas rápidas não encerram o assunto. Para muitas outras dicas de como otimizar seus códigos em PHP, considere ler os seguintes artigos (em inglês):

E você, tem alguma dica para otimizar seu código PHP?

15 interações em "Dicas para otimizar códigos PHP"

  1. Rodrigo Gregorio24/10/2008 

    dicas interessantes, vlw

  2. Steinn12/02/2010 

    # “else / if” é mais rápido que “switch / case “;

    Tem certeza?

    eu prefiro switch..

  3. Tárcio Zemel18/07/2010 

    @ Rodrigo Gregorio

    Eu é que agradeço a participação!

    @Steinn

    O "mais rápido" se refere ao processamento e não ao tempo em que o código demora para ser feito. Na maioria das vezes que existem "N" opções para escolher, também prefiro usar switch/case – pelo único motivo de ser mais facilmente manutenível.

  4. Marcelo Santos04/11/2010 

    Muito interessante o echo com parâmetros, esta eu não conhecia, parece realmente mais inteligente, vou passar a usá-lo :)

  5. Tárcio Zemel23/11/2010 

    Essa quase ninguém conhece. Depois conta pra gente se realmente deu resultados pra você!

  6. Marcelo Fabiano31/12/2010 

    Ótimas dicas !!! Algumas delas realmente não conhecia

  7. Tárcio Zemel04/02/2011 

    Que bom que agora conhece e vai poder fazer códigos PHP melhores! ;-)

  8. Yuri03/03/2011 

    Muito interessante suas dicas Tárcio, no entanto fiz um curso rápido de férias em PHP, o tutor do curso mencionava sempre que o print em relação ao echo tinha uma performasse melhor ?! Isso do ponto de vista dele numa aplicação numa empresa que ele tinha criado a pouco tempo. Agora fiquei na dúvida…
    Muito interessante também, conforme o Marcelo citou, a passagem de parâmetros por vírgula ao invés de concatenação ^^
    Vou começar aplicar no dia a dia também….
    Parabenizá – lo também pelos ótimos artigos seus no webmaster.pt, sempre que possível releio eles.

    Grande abraço e Sucesso

  9. Tárcio Zemel14/03/2011 

    Inicialmente, também fiquei com essa dúvida, mas aí vi este teste de performance e percebi que o "echo" é mais rápido, sim (mas ainda perde para as vírgulas).

    Mas é difícil mudar de pontinhos pra vírgula… rs

  10. Jair Humberto16/05/2011 

    Não há diferença entre performance entre print e echo e entre os diferentes tipos de concatenação, nem com switch ou else if. Basta fazer um teste pra ver.
    No manual do php tem alguma parte lá que fala que a própria engine do PHP se encarrega de otimizar o código nesses casos.
    Claro que casos com o do for, são diferentes.

  11. Tárcio Zemel18/05/2011 

    Veja esta análise (com gráfico, inclusive) que mostra que o echo é mais eficaz: PHP Echo Vs Print.

Comente!

Paradoxalmente ao crescente individualismo, ninguém quer se sentir só, e cresce o desejo de estar conectado, pertencer a algum grupo, presencial ou virtual.

Marcos Souza Aranha
Quer ganhar 1 ano grátis da Conta Negócios Basekit, uma das melhores ferramentas de criar sites do mundo? Saiba como!