Extract Constant
Basics
The Extract Constant refactoring makes your source code easier to read and maintain. It also helps you avoid using hard-coded constants without any explanations about their values or purpose.
PHP examples
Extracting a class constant
When a constant is extracted within a class definition, the new constant is defined through the const
keyword and referenced through the self
keyword.
In PHP language version 7.1 and later, you can additionally mark the extracted constant as public
, private
, or protected
.
Extracting a constant outside a class
When a constant is extracted outside a class definition, you can choose whether it will be defined through the const
keyword or through the define()
function.
How to extract a constant
- In the editor, position the cursor inside the expression to be replaced with a constant.
- Choose on the main menu or on the context menu of the selection. Alternatively pressCtrl+Alt+C.
- If a constant can be extracted from several expressions in the current context, PhpStorm shows all the relevant expressions in a pop-up list. Select the expression to apply the refactoring to.
- In the Extract Constant dialog box, type the name of the new constant in the Name text box.
- Specify the scope to apply refactoring in:
- If the refactoring is invoked inside a class definition, choose the visibility scope (access level modifier) of the extracted constant. If you leave the default value selected, the constant will be implicitly defined as
public
without any modifier applied to it. Otherwise, you can choose the appropriate option to explicitly mark the constant aspublic
,private
, orprotected
.Setting visibility scope is only possible in PHP language version 7.1 and later. You can specify the PHP language level on the PHP page ( for Windows and Linux or for macOS).
- If the refactoring is invoked outside a PHP class definition, choose the method to define the PHP constant in the Constant syntax area.
- To have PhpStorm define the constant through the define() function, choose define.
- To have PhpStorm define the constant through the
const
keyword outside a class definition, choose const.This method preserves the approach accepted in PHP version 5.3.0. Note that such constants are defined during compilation therefore they should be declared at the top-level scope but not inside functions, loops or if statements.
- Click OK to start the refactoring.