-
Notifications
You must be signed in to change notification settings - Fork 686
Regras de Escrita de Código
Todos os arquivos PHP devem estar no formato 'UNIX LIKE' isto é, a quebra de linha deve ter apenas o carácter 'Line Feed' LF como no Unix e não o 'Carriage Return' CR como no Apple ou LF e CR como no windows.
Além disso todos os arquivos PHP precisam ser salvos com a codificação do arquivo "UTF-8 without BOM". A parte "sem BOM" é importante. Abaixo explico o que o "BOM" é, como causa problemas, e como evitar estes problemas.
wikipedia escreveu: Um byte-order mark (BOM) é o caractere Unicode em ponto de código U + FEFF ("zero-width no-break space") quando o caractere é usado para designar a ordenação de uma seqüência de UCS / Unicode caracteres codificados em UTF-16 ou UTF-32. É convencionalmente usado como um marcador para indicar que o texto é codificado em UTF-8, UTF-16 ou UTF-32.
O que isto significa é que quando um arquivo é salvo com um BOM, há um caractere Unicode inserido no início do arquivo que a maioria dos editores de texto não será exibido.
O PHP como regra ainda é pobre quando se trata de manipulação de caracteres UTF-8 e codificação. Por esta razão o motor PHP não vai saber como lidar com o caractere BOM no início de um arquivo php e assim tratá-lo como uma peça normal do texto. É importante não haver nada fora das tags PHP (<?php
e ?>
).
Um exemplo clássico disso em ação é quando os usuários têm que criar um arquivo config.php novo e eles acidentalmente deixam um espaço antes do início PHP tag (<?php
). Isso faz com que um erro como o seguinte:
[[php Debug] PHP Notice: in file /includes/functions.php on line 3729: Cannot modify header information - headers already sent by (output started at /config.php:1)]
Como o interpretador do PHP não entende como lidar com o caractere BOM no arquivo, ele o trata como um caractere normal e é analisado no arquivo como um caractere antes da tag PHP inicial, causando um erro. Seria a mesma coisa como se você tivesse digitado algum texto na frente da tag PHP inicial ou deixado um espaço ou linha em branco.
Isso pode resultar em erros semelhante ao postado acima, ou dependendo dos arquivos editados, pode causar também outros problemas, como o não funcionamento.
Isso difere de editor para editor. Como regra, você deve sempre usar um bom editor de texto simples para editar seus arquivos. Isso não inclui bloco de notas ou wordpad! A Microsoft concebeu estes para inserir automaticamente o BOM quando os arquivos são gravados no formato UTF-8 e, como tal, não deve ser usado!
Um editor que é muitas vezes recomendado para edição de arquivos é o Notepad + +. Este é um editor gratuito que é distribuído sob a licença GPL. Para editar e salvar um arquivo corretamente usando o Notepad + + você precisa clicar em "Formatar", no menu superior e selecione "Encode em UTF-8 sem BOM" Uma vez que esta opção é definida você pode editar e salvar seu arquivo normalmente.
Se você estiver usando um editor diferente, é provável que o método para escolher a codificação do arquivo seja diferente. É muito provável que você irá precisar usar o "salvar como" opção ao salvar o arquivo. Na maioria dos casos, isso vai lhe dar uma caixa de pop-up que tem um menu drop-down para definir a codificação do arquivo ao salvar. Se este menu drop-down não tem uma opção "UTF-8 sem BOM", então você terá que consultar a documentação editores para obter instruções sobre como salvar arquivos na codificação UTF-8 without BOM.
Eu ouvi dizer que você pode usar as opções em alguns editores para converter a codificação para UTF-8 sem BOM se o arquivo foi salvo com a codificação errada. Se o seu editor não oferece essa opção, você terá que substituir o arquivo com uma nova cópia a partir do download e reaplique as edições a esse arquivo que você tinha feito. Depois de reaplicar as edições não se esqueça de salvar o arquivo na codificação do arquivo correto, que é "UTF-8 without BOM".
fonte : http://www.suportephpbb.com.br/forum/kb.php?a=104
Nunca use TABULAÇÕES - converta as tabulações em 4 espaços Observe as regra de escrita de código estabelecidas