Programmer's Reference Guide

Overview

PHP File Formatting

General

For files that contain only PHP code, the closing tag ("?>") is never permitted. It is not required by PHP, and omitting it´ prevents the accidental injection of trailing white space into the response.

Note: Important: Inclusion of arbitrary binary data as permitted by __HALT_COMPILER() is prohibited from PHP files in the Zend Framework project or files derived from them. Use of this feature is only permitted for some installation scripts.

Indentation

Indentation should consist of 4 spaces. Tabs are not allowed.

Maximum Line Length

The target line length is 80 characters. That is to say, Zend Framework developers should strive keep each line of their code under 80 characters where possible and practical. However, longer lines are acceptable in some circumstances. The maximum length of any line of PHP code is 120 characters.

Line Termination

Line termination follows the Unix text file convention. Lines must end with a single linefeed (LF) character. Linefeed characters are represented as ordinal 10, or hexadecimal 0x0A.

Note: Do not use carriage returns (CR) as is the convention in Apple OS's (0x0D) or the carriage return - linefeed combination (CRLF) as is standard for the Windows OS (0x0D, 0x0A).


Overview

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