Programmer's Reference Guide

Обзор

Форматирование PHP-файлов

Общее

Для файлов, содержащих только PHP-код, закрывающий тег ("?>") не разрешен. Он не требуется синтаксисом PHP и его пропуск предотвращает случайное включение в вывод конечных пробелов.

Замечание: ВАЖНО: Включение бинарных файлов, как разрешает __HALT_COMPILER(), запрещено из любого PHP-файла Zend Framework'а или файлов производных от него. Эта возможность разрешена для использования только в специальных инсталляционных скриптах.

Отступы

Для отступа используйте 4 пробела. Не используйте символ табуляции.

Максимальная длина строки

Рекомендуемая длина строки составляет 80 символов, т.е. разработчики должны стремиться держать код как можно ближе к 80-символьной границе, когда это возможно. Однако более длинные строки также допустимы. Максимальная длина любой строки PHP-кода не должна превышать 120 символов.

Переводы строк

Переводы строк должны быть как принято для текстовых файлов в Unix-системах. Строки должны заканчиваться только символом перевода на новую строку (LF). Символ перевода на новую строку в десятичном виде представляется как число 10, или как 0x0A в шестнадцатеричном.

Не используйте комбинацию символов возврата каретки/перевода строки (CRLF) как на Windows-компьютерах (0x0D, 0x0A).


Обзор

Comments

Hier vermisse ich den Hinweis, dass das starke Vermischen von HTML und PHP schlechter Stil ist. Eine PHP Datei sollte, wenn sie überhaupt HTML erzeugt strikt zwischen PHP und HTML Teil trennen.
Zum Beispiel

<?php

includes

functions

processing

/***HTML OUTPUT****/
?>
<html>
..
<?php echo $header; ?>
<?php buildTable(...); ?>
</html>
$ grep -RP "\t" library/Zend | wc -l
232417

a lot of tabs if you ask me
This is the most informed writing I’ve ever seen on this subject. <a href="http://www.google.com"> search </a>
@tvm : Nice one;
@adam : ++;

Nice april fools Zend so fun !
Omitting the closing tag to prevent the accidental injection of trailing white space? When there is an opening tag, there is *always* a closing tag. That is how proper formatting is done. Zend is trying to solve a mere technical problem by breaking syntax. A very bad idea. And for crying out loud, how come there is a trailing white space? I have been writing php scripts for over 10 years now, since the days of php/fi. Trailing white space was never an issue for me. If it happened, I removed it. That's it. All you need is a good editor and a good ftp program. (BTW, proper editors can automatically remove trailing white spaces for you.)
"Indentation should consist of 4 spaces. Tabs are not allowed." WTF? This, again, makes no sense. This suggests misunderstanding of what certain characters are for. Spaces are *not* for cosmetic formatting of code. Tabs are generally used for indentation - in fact, that is what they were created for. If an editor messes up code indented with tabs, that is a bad editor. Good ones allow the exact setting of tab stops. This is again a very bad approach to solving an otherwise very easy problem.
Maximum Line Length and Line Termination are okay.
adam, you're right.
I strongly agree with adam. Drives me nuts when I'm going through code and I see indentations ranging from 1-4 spaces. 1 tab and you're sorted. One key to indent, one key to delete an indentation.

Spamming space and delete is stupid and its contributing to RSI!

Honestly, I cannot stress enough how much it annoys me when I see 1 space, then 2 spaces, then 3 spaces, then 2 spaces, then 4. I don't mean to but being a little obsessive I waste a lot of time trying to sort them out for readability.

Ctrl + a, open, find+replace, 4 spaces for a tab :P
@adam:
"The closing tag of a PHP block at the end of a file is optional, and in some cases omitting it is helpful when using include() or require(), so unwanted whitespace will not occur at the end of files, and you will still be able to add headers to the response later. It is also handy if you use output buffering, and would not like to see added unwanted whitespace at the end of the parts generated by the included files."
From http://php.net/manual/en/language.basic-syntax.instruction-separation.php

+ Add A Comment

Please do not report issues via comments; use the ZF Issue Tracker.

If you have a JIRA/Crowd account, we suggest you login first before commenting.

  • BBCode is allowed in the comment markup

  • Select a Version

    Languages Available

    Components

    Search the Manual