Code Style. PHP
for Windows and Linux
for OS X
Use this page to configure formatting options for PHP files. View the result in the
Preview pane on the right.
On this page:
Set from...
Click this link to choose the base for the current language default code style from the pop-up list, that
appears. The list contains two options:
- Language: choose this option to inherit the coding style settings from another
language. Select the source language from the list, that opens. So doing, only the settings that are
applicable to the current language are taken. All the other settings are not affected.
- Predefined code style: choose this option to use the coding standards defined for
a specific framework. Select one of the following frameworks from the list:
This link appears in the upper-right corner of the language-specific code style page, when applicable.
Click Reset to discard changes and return to the initial set of code style settings.
PHP-secific formatting settings for Tabs and Indents
See Common Code Style Options: Tabs and Indents for the settings that are common for all languages.
Item | Description |
---|
Indent as template language unless PHP-only
|
-
When this check box is selected, IntelliJ IDEA applies the indentation style specified for the template language of the source code
into which PHP fragments are embedded. If the PHP code is not surrounded with any other code, the PHP style is applied
depending on the status of the Use tab character check box.
-
When this check box is cleared, the PHP style is applied
no matter whether the PHP code fragment is embedded or the entire file is
.php .
|
PHP-specific formatting settings for Spaces
See Common Code Style Options: Spaces for the settings that are common for all languages.
Select or clear the check boxes to have spaces inserted, not inserted, or removed in the following PHP contexts:
Item | Description |
---|
Before Parentheses
|
-
Array initializer parentheses
Select this check box to have a space inserted before the opening parenthesis in array declarations, such as:
$array = array (0 => "zero", 1 => "one");
If the check box is cleared, no space is inserted and the code looks as follows:
$array = array(0 => "zero", 1 => "one");
|
Around Operators
|
-
Concatenation
Select this check box to have spaces inserted before and after the concatenation operator (. ) so the code looks as follows:
echo "The result is " . $i;
When the check box is cleared, no spaces are inserted around the concatenation operator so the code looks as follows:
echo "The result is ".$i;
|
Before Left Brace
|
-
Class left brace
Select this check box to have a space inserted between the class name and the opening brace in class declarations:
class Class1 {
function Foo()
}
When the check box is cleared, no space is inserted:
class Class1{
function Foo()
}
Selecting or clearing the check box is relevant only when Braces placement in class declarations is set to End of line
on the Wrapping and Braces tab.
|
In Ternary Operator
(?: )
|
Select the check boxes in this section to have spaces automatically inserted before and after ? ,
before and after : , and between ? and :
in ternary (conditional) operators.
|
Other
|
Select the check boxes in this section to have spaces automatically inserted before and after commas, semicolons,
unary NOT operators (! ), and after type casts.
-
After type cast
When this check box is selected, IntelliJ IDEA automatically inserts a space after the closing parentheses
of a cast:
$fst = (string) $foo;
If the check box is cleared, no spaces is inserted and the casted variable sticks to the cast:
$fst = (string)$foo;
|
PHP-specific formatting settings for Wrapping and Braces
See Common Code Style Options: Wrapping and Braces for the settings that are common for all languages.
Item | Description |
---|
Braces placement |
In this section, choose the position for opening braces in declarations of namespaces, classes, and functions, in loops, and in other constructions.
Choose the required position from the drop-down list, the available options are:
-
End of line -
select this option to have the opening brace placed at the declaration line end.
-
Next line if wrapped -
select this option to have the opening brace placed at the beginning of the line after
the multiline declaration line.
-
Next line -
select this option to have the opening brace placed at the beginning of the line after the
declaration line.
-
Next line shifted -
select this option to have the opening brace placed at the line after the declaration
line being shifted to the corresponding indent level.
-
Next line each shifted -
select this option to have the opening brace placed at the line after the declaration
line being shifted to the corresponding indent level,
and have the next line shifted to the next indent level as well.
|
Extends/implements list
|
In this section, configure wrapping and subsequent alignment of extend and implements lists:
-
Do not wrap - when this option is selected, no special wrapping style is applied.
With this option selected, the nested alignment and braces settings are ignored.
-
Wrap if long - select this option to have lines going beyond the right margin wrapped with proper
indentation.
-
Wrap always - select this option to have all elements in lists wrapped
so that there is one element per line with proper indentation.
-
Chop down if long - select this option to have elements in lists that go beyond the right margin
wrapped so that there is one element per line with proper indentation.
-
Align when multiline
When this check box is selected, each item in an extends or an implements list,
which after wrapping starts on a new line, are aligned by the first item, which remains unwrapped:
abstract class Foo extends
Class1 implements
Class2,
Class8 {
}
When the check box is cleared, the position of each item in a wrapped list is determined by the chosen indentation level.
The status of the check box affects the formatting only if you have chosen to wrap lists,
if the Do not wrap option is chosen, selecting or clearing the check box has no effect.
|
Extends/implements keyword
|
In this section, configure wrapping for the extends and implements keywords in class declarations.
If you choose the Do not wrap option, no wrapping will be applied, if you choose Wrap if long
or Wrap always, each keyword and each item in an extends or implements list
will be displayed on a new line:
abstract class Foo
extends
Class1
implements
Class2,
Class8 {
}
|
Function declaration parameters
|
In this area, configure formatting in declarations of functions and methods.
-
Keep ')' and '{' on one line
When this check box is cleared, the opening curly brace is moved to the next line:
function Foo()
{
}
When the check box is selected, the opening curly brace is displayed on the same line as the function parameters:
function Foo() {
}
|
Chained method calls
|
In this section, configure wrapping and subsequent alignment of chained calls.
-
Do not wrap - when this option is selected, no special wrapping style is applied.
With this option selected, the nested alignment and braces settings are ignored.
-
Wrap if long - select this option to have lines going beyond the right margin wrapped with proper
indentation.
-
Wrap always - select this option to have all elements in lists wrapped
so that there is one element per line with proper indentation.
-
Chop down if long - select this option to have elements in lists that go beyond the right margin
wrapped so that there is one element per line with proper indentation.
-
Align when multiline
When the check box is selected, each called method, which after wrapping is positioned on a new line,
is aligned by the first one, which remains unwrapped:
$x = $x->one( "a", "b" )
->two( "c", "d", "e" )
->three( "fg" )
->four;
When the check box is cleared, the position of each item in a wrapped list is determined by the chosen indentation level.
The status of the check box affects the formatting only if you have chosen to wrap lists,
if the Do not wrap option is chosen, selecting or clearing the check box has no effect.
-
Place ';' on new line
When the check box is cleared, the semicolon (; ) is displayed after the last item in a chained call.
If the check box is selected, the semicolon is moved to a new line:
$x = $x->one( "a", "b" )
->two( "c", "d", "e" )
->three( "fg" )
->four
;
|
Assignment statement
|
In this section, configure wrapping and subsequent alignment in assignment statements.
-
Do not wrap - when this option is selected, no special wrapping style is applied.
With this option selected, the nested alignment and braces settings are ignored.
-
Wrap if long - select this option to have lines going beyond the right margin wrapped with proper
indentation.
-
Wrap always - select this option to have all elements in lists wrapped
so that there is one element per line with proper indentation.
-
Chop down if long - select this option to have elements in lists that go beyond the right margin
wrapped so that there is one element per line with proper indentation.
-
Assignment sign on new line
-
Align consecutive assignments
When this check box is selected, the assignment signs in consecutive assignment statements are aligned
by the rightmost one:
$y = foo( $x );
$intermediate = foo( $intermediate );
$result = $result . $y . $intermediate;
When this check box is cleared, no alignment is applied:
$y = foo( $x );
$intermediate = foo( $intermediate );
$result = $result . $y . $intermediate;
|
Class field/constant groups
|
In this section, configure wrapping and subsequent alignment within lists of class properties (fields)
or class constants.
- Align fields in columns
- Align constants
|
Array initializer
|
In this section, configure wrapping and subsequent alignment in array declarations.
-
Do not wrap - when this option is selected, no special wrapping style is applied.
With this option selected, the nested alignment and braces settings are ignored.
-
Wrap if long - select this option to have lines going beyond the right margin wrapped with proper
indentation.
-
Wrap always - select this option to have all elements in lists wrapped
so that there is one element per line with proper indentation.
-
Chop down if long - select this option to have elements in lists that go beyond the right margin
wrapped so that there is one element per line with proper indentation.
-
Align when multiline
When the check box is selected and the New line after '(' check box is cleared,
each element, which after wrapping is positioned on a new line,
is aligned by the first one, which remains unwrapped:
$colours = array( "blue",
"red",
"white",
"green",
"yellow" );
When both the Align when multiline and the New line after '(' check boxes are selected,
all the elements ae aligned according to the indentation settings:
$colours = array(
"blue",
"red",
"white",
"green",
"yellow" );
Selecting or clearing the Align when multiline and the New line after '(' check boxes
affects the formatting only if you have chosen to wrap lists,
if the Do not wrap option is chosen, the status of the check boxes has no effect.
-
New line after '('
When this check box is selected, the first element of the array is displayed on a new line
and all the elements of the array are aligned according to the indentation settings,
regardless of the status of the Align when multiline check box.
When this check box is cleared, the first element of the array remains on the same line,
and the other elements are aligned according to the indentation settings.
- Place ')' on new line
|
Modifier list
|
-
Wrap after modifier list
When this check box is selected, the code is wrapped after a list of visibility modifiers:
protected
function Foo() {
}
When the check box is cleared, no wrapping is performed:
protected function Foo() {
}
|
Blank lines
Use this tab to define where and how many blank lines you want IntelliJ IDEA to retain and insert in your code
after reformatting. For each type of location, specify the number of blank lines to be inserted.
The results are displayed in the Preview pane.
Item | Description |
---|
Keep Maximum Blank Lines | In this area, specify the number of blank lines to be kept after reformatting in the specified locations. |
Minimum Blank Lines | In the text boxes in this area, specify the number of blank lines to be present in the specified locations.
|
PHPDoc
In this tab, configure the code style to be applied inside PHPDoc comments.
Learn more about documenting PHP code at Creating PHP Documentation Comments.
Item | Description |
---|
Align parameter names | Select this check box to have the &<paramname> elements aligned. |
Keep blank lines | Select this check box to suppress removing blank lines automatically. |
Blank lines around parameters | Select this check box to have a blank line inserted above and below
the section with @param tags. |
Blank line before the first tag | Select this check box to have an blank line inserted above the first PHPDoc tag. |
Align tag comments | Select this check box to have the description elements aligned. |
Wrap long lines | Select this check box to have the text that exceeds the right margin wrapped to the next line. |
Generated Doc Blocks | In this area, configure the code style to be applied within generated PHP documentation blocks, see
Creating PHP Documentation Comments.
- Use fully-qualified class names: select this check box to have IntelliJ IDEA
specify fully qualified class names for properties, function parameters,
return and throws values, etc.
|
@throws Tag Analysis | - Call tree analysis depth: specify the depth of analysis. IntelliJ IDEA can
analyze exceptions up to 3 levels deep.
- Ignore Runtime exceptions: If this check box is selected, the exceptions
which can only be found at runtime (either based on
RuntimeException or any of its
subclasses), are ignored. - Ignore Logic exceptions: If this check box is selected, exceptions caused by
the error in the program logic (either based on
LogicException or any of its
subclasses), are ignored.
|
Other
Item | Description |
---|
Indent code in PHP tags | Select this check box to have the code enclosed in <?php> tags indented against
the opening <?php tag. |
Convert True/False constants to upper case | Select this check box to have the true and false constants displayed in
the upper case. |
Convert Null constant to upper case | Select this check box to have the null constant displayed in the upper case. |
Blank line before return statement | Select this check box to have IntelliJ IDEA automatically insert a blank line before each
return statement. |
Spaces around variables/expressions in brackets |
|
Code Commenting | In this area, configure the code style options to be applied to comments.
|
Array declaration style |
See Arrays. Syntax for details.
|
Arrangement
In this tab, define a set of rules to re-arrange your PHP code according to your preferences.
Last modified: 23 November 2016