sildenafil billig cipro case in vendita kamagra wo kaufen sildenafil tabletten sildenafil costo cialis holland viagra bestellen cialis apotheek acquisto cialis 5 mg viagra online kaufen erfahrungen viagra preis preis viagra viagra kaufen usa viagra 25 mg rezeptfrei kamagra oral jelly per nachnahme generische viagra comprare finasteride apothekenpreis viagra propecia costo viagra aus holland finasteride 1 mg generico flagyl compresse 250 mg preisvergleich levitra compra viagra online cialis soft kaufen cialis rezeptpflicht cialis per nachnahme costo finasteride generika viagra cialis levitra kaufen ohne rezept tabletten cialis acquisto plavix lasix 500 mg cialis generika bestellen cialis wo kaufen billig viagra ratiopharm viagra rezeptfrei erfahrungsberichte viagra generico opinioni prezzo viagra 25 mg clomid 50 mg viagra billig bestellen kamagra pille 100mg viagra generika kamagra oral jelly günstig kamagra ohne rezept viagra pillenmaster tschechien viagra cialis generika ohne rezept viagra günstig bestellen clomid senza ricetta cialis generika erfahrungen cialis generika billig viagra online bestellen acquisto cialis original levitra rezeptfrei kamagra kautabletten test viagra original rezeptfrei viagra generico online viagra im internet bestellen strafbar viagra ohne rezept holland viagra verschreibungspflichtig levitra kopen viagra tabletten proscar 5 mg viagra kaufen berlin levitra online bestellen propecia generico in italia acquisto priligy viagra preisliste günstiger viagra propecia prezzo viagra rezeptfrei spanien cialis ohne rezept kaufen viagra online bestellen erfahrungen levitra 20mg rezeptfrei viagra online apotheke lasix 25 mg niederlande cialis acquisto cialis generico viagra preise in deutschland generico priligy viagra generika indien viagra bald billiger kamagra schweiz levitra ci vuole ricetta kamagra wien finasteride dove comprare viagra pfizer kaufen viagra im internet kaufen levitra per nachnahme betere erectie priligy compresse tadalafil ricetta super kamagra bestellen viagra bestellen per nachname cialis 5 mg rezeptfrei cialis verkoop mannen erectie kamagra online acquisto flagyl priligy vendita on line cialis nederland viagra kaufen in deutschland cialis rezeptfrei land viagra rezeptfrei günstig generika tadalafil cialis viagra a poco prezzo viagra deutschland rezeptfrei kamagra bijsluiter viagra venda livre zovirax generico kauf viagra cialis rezeptfrei aus deutschland erectiepil viagra online schweiz zovirax labiale prezzo viagra sicher bestellen cialis generico italia tadalafil prezzo viagra generika oder original acquisto viagra generico viagra 100mg ohne rezept viagra billigst viagra generika bestellen generika cialis viagra online kaufen ohne rezept cialis preis apotheke günstig kamagra kaufen plavix compresse propecia generico costo cialis generika internet cialis verkauf comprare viagra online viagra kaufen in münchen super kamagra generika oral jelly kamagra bestellen cialis filmtabletten viagra einzeln kaufen kamagra bijwerkingen cialis generika aus europa tadalafil nachnahme kamagra oral jelly preis cialis 10mg preis cialis alternative finasteride vendita cialis rezeptfrei cialis 5mg preis lasix prezzo levitra rezeptfrei schweiz generische levitra cialis 5mg filmtabletten preisvergleich levitra kaufen tadalafil tabletten tadalafil 20mg kaufen viagra kaufen test prezzo finasteride comprare cialis in italia prezzi viagra viagra kaufen preisvergleich viagra auf rechnung bestellen levitra generika erfahrungen priligy 60 mg vardenafil kaufen cialis dove si compra priligy vendita levitra pil viagra generika 100 mg super kamagra preisvergleich kamagra verkauf viagra in holland schweiz viagra viagra vrouwen viagra generico preiswert cialis cialis generika nebenwirkungen levitra günstig kaufen viagra rezeptfrei erfahrungen plavix vendita viagra schweiz rezeptfrei comprar levitra generica generieke medicijnen cialis preise apotheke levitra in apotheke preisvergleich kamagra cialis rezeptfrei deutschland lasix senza ricetta tadalafil bestellen generico finasteride cialis holland rezeptfrei levitra 10mg rezeptfrei viagra original günstig viagra 100mg preisvergleich zovirax equivalente cialis generika preisvergleich viagra verkauf viagra kaufen mit rezept comprare viagra proscar generico cialis aus indien kamagra rezeptfrei acquisto cialis italia viagra cialis kaufen compra viagra italia sildenafil per donne viagra rezeptfrei in holland nolvadex costo ersatz viagra cialis rezeptfrei schweiz viagra rezept online viagra legal kaufen clomid prescrizione preis kamagra erectie middelen finasteride generico farmacia tadalafil generika viagra preise deutschland cialis billig viagra apothekenpflichtig cialis preisvergleich azithromycin 250 mg preisvergleich levitra 20 mg cialis rezeptfrei bestellen viagra rezeptfrei holland viagra türkei rezeptfrei levitra serve ricetta viagra kaufen paypal viagra 50mg preis sildenafil preise propecia ricetta viagra versand schweiz prescrizione clomid viagra ohne rezept forum sildenafil 100mg preis viagra kaufen günstig levitra tabletten günstig viagra kaufen levitra filmtabletten 20mg prezzo zitromax 500 original viagra ohne rezept apotheke viagra preis viagra zonder recept kamagra oral jelly bestellen cialis original kaufen tadalafil costo viagra nur mit rezept viagra kaufen in wien vardenafil bestellen viagra per nachnahme impotentie kamagra lutschtabletten kamagra tabletten erfahrungen cialis pillen cialis generico acquisto cialis 20mg filmtabletten bestellen compra viagra generico cialis 5mg generika comprar viagra pela net alternativen viagra cialis preiswert kaufen cialis versand cialis bestellen forum cialis generico finasteride quanto costa viagra ohne rezept kaufen cialis in österreich kaufen cialis generico funziona viagra halbe tablette cialis apotheke günstig cialis viagra preis in apotheke viagra online rezeptfrei viagra express versand kamagra generika levitra generika forum viagra online kaufen kamagra online kaufen acquisto zitromax prezzo viagra 50 mg viagra aus indien viagra rezept viagra kosten in der apotheke cialis berlin koop levitra plavix prezzo versandapotheke viagra viagra blitzversand lasix compresse 25 mg cialis rezeptfrei günstig mannen pil viagra ersatz pillenpharm viagra zovirax compresse prezzo finasteride 5 mg cialis rezeptfrei österreich kamagra wirkung viagra bestellen rezeptfrei acquista cialis on line kamagra kopen viagra preiswert viagra rezeptfrei billig generic tadalafil generika flagyl compresse prezzo cialis lilly preis viagra efeitos viagra rezeptfrei bestellen proscar ricetta alternativ viagra kamagra verschreibungspflichtig viagra bestellen erfahrung cialis 20 mg generico viagra rezeptfrei auf rechnung cialis generika indien cialis comprare online pillendienst viagra viagra kaufen wien tadalafil acquisto levitra billig kaufen kaufen cialis kamagra tabletten lioresal compresse cialis niederlande cipro prezzi viagra kaufen ohne rezept forum viagra preisvergleich viagra generika per nachnahme viagra cialis levitra generika viagra bestellen schweiz viagra online kaufen forum viagra einzeln bestellen zovirax pomata prezzo tadalafil naturale sildenafil rezeptfrei priligy generico apotheke online viagra viagra torte rezept generico zovirax levitra rezeptfrei holland kamagra preisvergleich viagra kautabletten kamagra indien viagra rezeptfrei niederlande cialis seriös kaufen priligy prezzo levitra rezeptfrei cialis 10 mg rezeptfrei costo propecia viagra rezeptfrei viagra rezeptfrei in der apotheke cialis generika schweiz cialis generico esiste acquisto nolvadex rezeptpflichtig viagra
Home > Best Practices, Code, PHP, Security > The neverending closing tag discussion

The neverending closing tag discussion

February 19th, 2009 Galvão Leave a comment Go to comments

[pt-BR]

The discussion about whether programmers should or shouldn’t use the PHP closing tag on their code has started again. I’m a little radical when speaking about some issues, but for me there are basically two excuses for not closing your code:

1 – Laziness – It’s the same (whether the PHP interpreter treats differently or not, I really don’t care) as not closing curly braces in one-line control structures. Laziness in programming, IMHO, can only lead to problems.

2 – Fear – The fear about having a white space injection vulnerability in your app.

None of the above reasons is valid for me. Programmers are responsible for the code they write. It’s only natural that a programmer is self assured and has control of his/her source code. Therefore if the code will or will not have a white space at the end is a programmer’s responsibility.

To avoid this by not putting a PHP close tag at the end of the file is a demonstration of lack of self assurance. It’s an easy solution in a professional area where “easy” rarely – or at least it should rarely – applies to anything.Unfortunately a lot of PHP programmers have the bad habit of pursuing “easy” and “safe” solutions that don’t directly depend on them.

You might find my words too harsh, but I consider them true nevertheless. Oh, and relax, after all this is a “one guy’s opinion”.

Update: I was taking a look at the comments on the twitter poll which generated this post and I couldn’t help to add this: PHP Official Documentation states that the closing tag is optional (when dealing with pure PHP code, of course), while Zend Framework’s Coding Style Documentation states that it’s “never permitted”. This is quite an absurd. If the language itself states that something is optional, any related tool should respect this.

A discussão sobre se programadores devem ou não usar a tag de fechamento PHP em seu código recomeçou. Eu sou meio radical para falar sobre alguns assuntos, mas para mim existem basicamente duas desculpas para não fechar o seu código:

1 – Preguiça – É a mesma coisa (mesmo que o interpretador PHP trate isso de forma diferente ou não, eu relmente não me importo) que não fechar uma chave em estruturas de controle de apenas uma linha. Preguiça em programação, IMHO, só pode levar à problemas.

2 – Medo – O medo de ter uma vulnerabilidade de injeção de espaço em branco em sua aplicação.

Nenhuma das razões acima é válida para mim. Programadores são responsáveis pelo código que escrevem. É apenas natural que um programador seja seguro e tenha controle do seu código-fonte. Consequentemente se o código terá ou não um espaço em branco no final é uma responsabilidade do programador.

Evitar isso por não colocar a tag de fechamento PHP no fim do arquivo é uma péssima demonstração de falta de segurança pessoal. É uma solução fácil em uma área profissional onde “fácil” raramente – ou pelo menos raramente devia – se aplica à qualquer coisa. Infelizmente muitos programadores PHP têm o péssimo hábito de procurar soluções “fáceis” e “seguras” que não dependem diretamente deles.

Você pode achar minhas palavras muito duras, mas eu as considero verdadeiras de qualquer forma. Ah, e relaxe, isso é, apesar de tudo, a “opinião de um cara”.

Update: Estava dando uma olhada nos comentários da pesquisa do Twitter que gerou esse post e não pude deixar de adicionar isso: a Documentação Oficial do PHP declara que a tag de fechamento é opcional (em se tratando de código PHP puro, obviamente), enquanto que a Documentação de Estilo de Código do Zend Framework declara que ela “nunca é permitida”. Isto é um belo absurdo. Se a própria linguagem declara que algo é opcional qualquer ferramenta relacionada deveria respeitar isso.

Categories: Best Practices, Code, PHP, Security Tags:
  1. February 20th, 2009 at 00:08 | #1

    Com certeza segurança nunca foi um argumento plausível para má programação. Se existe a abertura e o fechamento de tags de programação, assim como as de html, elas devem ser usadas. Não é porque não se escreverá mais nada que poderemos ignorar o ponto final de uma redação.

    Assim como os escritores, são os detalhes que evidenciam os bons programadores. Detalhes que se transformam em toda a diferença.

    Neste ponto, sou radical como você.

  2. February 20th, 2009 at 00:39 | #2

    Obrigado por seu comentário, Rafael. Ah, e obrigado também pelo seu “radicalismo solidário” =)

  1. March 4th, 2009 at 20:53 | #1