10+ coisas que odeio em php

20
1/20 10+ coisas que 10+ coisas que odeio em PHP odeio em PHP Almir 'm3nd3s' de Araújo Coordenador do Grupo PHP-ES Junior Level Linux Professional (LPIC-1) Desenvolvedor PHP desde 2005 Entusiasta de Software Livre

Upload: almir-m3nd3s

Post on 18-Jan-2015

1.764 views

Category:

Technology


0 download

DESCRIPTION

Palestra que ministrei no II PHP Day do Espírito Santo na FAESA. Essa palestra tem como objetivo alertar aos PHPzeiros a importância de se conhecer a linguagem, ler mais a documentação e tomar cuidado ao codificar.

TRANSCRIPT

Page 1: 10+ Coisas Que Odeio Em Php

1/20

10+ coisas que10+ coisas que odeio em PHPodeio em PHP

Almir 'm3nd3s' de AraújoCoordenador do Grupo PHP-ESJunior Level Linux Professional (LPIC-1)Desenvolvedor PHP desde 2005Entusiasta de Software Livre

Page 2: 10+ Coisas Que Odeio Em Php

2/20

Motivação

● Inspirado na: 10 Coisas que eu Odeio em Java (Rafael Santos)

● Erros comuns● Falhas de segurança● Falta de conhecimento● PHP é fácil

Page 3: 10+ Coisas Que Odeio Em Php

3/20

Segundo a Desciclopédia:

“PHP (Pqp,Hoje estou com Prequiça) é uma das sete linguagens de programação consideradas pela Igreja Católica como satânicas … . Acredita-se que foi criada com o único propósito de desvirtuar inocentes programadores e levá-los ao caminho do mal. O sujeito que se atreve a programar em PHP começa a perder gradativamente o conhecimento em outras linguagens, e passa a usar variáveis sem as declarar em qualquer linguagem.”

http://desciclo.pedia.ws/wiki/PHP

Page 4: 10+ Coisas Que Odeio Em Php

4/20

Não se assuste!

● PHP é uma linguagem muito poderosa● Suporte a inúmeros banco de dados● Comunicação com outros serviços utilizando

protocolos como LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM (em Windows) e incontáveis outros.

● O PHP possui inúmeras extensões● Ótima documentação● PHP é fácil

● A intenção é informar e alertar

Page 5: 10+ Coisas Que Odeio Em Php

5/20

Quem usa PHP?

EU!EU!

Page 6: 10+ Coisas Que Odeio Em Php

6/20

Cronograma1/2

● Register globals e escopo de variáveis● Operador de controle de erro● Variáveis variáveis● Constantes automáticas● Casting e Auto Casting● Aspas, Apóstrofos e Crases● set_time_limit()● Modificadores de cabeçalho e “?>”

Page 7: 10+ Coisas Que Odeio Em Php

7/20

Cronograma2/2

● Cuidado com Inteiros “desconhecidos”● Comparações em PHP● Funções e seus Alias

Page 8: 10+ Coisas Que Odeio Em Php

8/20

Register Globals

● Obsoleto a partir do PHP 5.3.0● Removido do PHP 6.0.0● Desde a versão 4.2.0 definido como OFF● Não se confia em estranhos!● Com register_globals ativado é mais fácil

escrever códigos inseguros

Page 9: 10+ Coisas Que Odeio Em Php

9/20

Operador de Erro

● O PHP suporta um operador de controle de erro: o sinal 'arroba' (@)

● Qualquer mensagem de erro gerada por uma expressão será ignorada

● Uso inadequado● Prefira usar funções de Manipulação

de Erros e Logging, ou ao menos track_errors + $php_errormsg

Page 10: 10+ Coisas Que Odeio Em Php

10/20

Vaiáveis variáveis

● Uma variável variável pega o valor de uma variável e a trata como o nome de uma variável.

● O que dizer de arrays assim?

Page 11: 10+ Coisas Que Odeio Em Php

11/20

Constantes automáticas

● Já experimentou escrever algo como:

<?php echo 5 * kg * batata;?>

Page 12: 10+ Coisas Que Odeio Em Php

12/20

Casting e Autocasting

● PHP é como uma mãe● Pode acontecer por descuido● Dificilmente se faz isso por querer! (eu acho)● Caso clássico: patos, galinhas e pombo● Me diga o resultado de: 1 + "-1.3e3";

Page 13: 10+ Coisas Que Odeio Em Php

13/20

Aspas, Apóstrofos e Crases

● Você sabe a diferença?● Para que serve cada uma?

● Aspas (“)● Apóstrofo(')● Crase (`)

Page 14: 10+ Coisas Que Odeio Em Php

14/20

set_time_limit(0)

● Limita o tempo de execução do script● Se este limite é atingido, o script retorna um

erro fatal● Nunca! Eu disse NUNCA, nunca use

set_time_limit(0) sem que seja necessário!

Page 15: 10+ Coisas Que Odeio Em Php

15/20

Modificadores de Cabeçalho e a tag de fechamento do PHP

● A função header() é usada para enviar um raw HTTP header.

● Precisa ser chamada antes que qualquer saída tenha sido feita.

● É muito comum acontecer problemas quando usando includes.

● Para evitar alguns programadores costumam não “finalizar” o código PHP com “?>”

Page 16: 10+ Coisas Que Odeio Em Php

16/20

Cuidado com Inteiros “desconhecidos”

● Menos comum, mas pode virar uma pegadinha● Qual o resultado da seguinte soma em PHP: 07

+ 011?● E esta soma: 0x21 + 1?● Ok, ok! E essa então: 1 + 1e2● Ler a documentação é sempre

bom!

Page 17: 10+ Coisas Que Odeio Em Php

17/20

Comparações em PHP 1/2

● Responda o retorno das comparações abaixo:● 0 == “a”● “1” == “01”● “10” == “1e1”● Funções que retornam posição: strpos(),

array_search(), ...● Operador Idêntico● Operador Não Idêntico

Page 18: 10+ Coisas Que Odeio Em Php

18/20

Comparações em PHP 2/2

● Operadores de comparação: &&, || e and, or● Qual o resultado é impresso pelo var_dump()

para essas comparações:

$a = true && false;

$b = true and false;

var_dump($a, $b);

$c = true || false;

$d = true or false;

var_dump($c, $d);

Page 19: 10+ Coisas Que Odeio Em Php

19/20

Funções e Alias

● chop() e rtrim()● die() e exit()● doubleval() e floatval()● fputs() e fwrite()● ini_alter() e ini_set()● is_*()

Page 20: 10+ Coisas Que Odeio Em Php

20/20

That's All Folks