Sometimes you may need to create temporary notes or draft up some code outside the project context. Instead of switching to a different application, you can use scratch files and scratch buffers.
Scratch files are fully functional, runnable, and debuggable files that support syntax highlighting, code completion, and all other features for the corresponding file type. For example, while working on one project, you may come up with an idea for a method that you could later use in another project. You can create a scratch file with a draft of the method, which is not stored in your project directory but can be opened when you're working on any other project. You can use scratch files to draft code constructs, HTTP requests, JSON documents, and so on.
Scratch buffers are simple text files without any coding assistance features. Scratch buffers can be used for simple task lists and notes to yourself. They are also not stored in the project directory and can be opened from any other project. You can create up to five scratch buffers with default names, which are rotated and reused by clearing the content.
Create a scratch file
From the main menu, selector press Ctrl+Alt+Shift+Insert.
Select the language of the scratch file. Scratch files of the same type are automatically numbered and added to the Scratches and Consoles directory of the Project view.
Alternatively, you can create a new scratch file with the contents of the current selection in the editor. Select some text or code, press Alt+Enter and then select Create new scratch file from selection. PhpStorm will attempt to detect the language of the selected fragment and use the appropriate type and extension. If it can't detect the language of the selection, PhpStorm will create the file with the same type and extension as the original file.
PhpStorm numbers scratch files sequentially starting from 1. If you close a tab with an empty scratch file, PhpStorm deletes it.
Create a scratch buffer
There is no dedicated menu item for the action to create a new scratch buffer, but you can use the Find Action popup Ctrl+Shift+A and run the New Scratch Buffer action.
You can also add a shortcut for the New Scratch Buffer action as described in Keyboard shortcuts.
PhpStorm creates a text file named buffer1.txt. The next scratch buffer you create is named buffer2.txt, and so on up to buffer5.txt. When PhpStorm reaches that limit, it will recreate buffer1.txt and suggest clearing the content for it. If you want to make sure PhpStorm does not clear the scratch buffer after you have five, you can rename it.
View all scratch files and buffers
Open the Project view and expand.
Use the Find Action popup Ctrl+Shift+A to invoke the Show Scratch Files action and view all available scratch files in a popup:
Running scratch files in multiple PHP versions
PhpStorm integrates with 3v4l.org, which allows you to run code from a PHP scratch file using multiple PHP versions simultaneously or switch between versions on the fly. Under the hood, PhpStorm uploads the code snippet from the scratch file to the 3v4l.org service and brings the output back to the IDE. No additional steps to install or configure the service are required.
Run PHP code on 3v4l.org from the IDE
Open the code snippet in the scratch file editor by either of the following:
From the Project view, expandand open an existing scratch file.
Create a new scratch file from a project file. To do so, select the code snippet in the editor, press Alt+Enter, and then select Create new scratch file from selection.
The editor window for PHP scratch files comes with an 3v4l.org toolbar at the top.
Select the specific PHP version from the list on the toolbar (or leave the default All versions option) and click . When prompted, confirm if you want to upload content of the scratch file to 3v4l.org and make it public.
3v4l.org runs your code (refer to the 3v4l.org link on the toolbar), and a preview window with the execution result is displayed in the editor.
To toggle between the editor and the preview, click , , or on the toolbar.
Location of scratch files and buffers
By default, PhpStorm stores scratch files and buffers in the IDE configuration directory under scratches. They are available from any IDE and project that uses this configuration directory.
To change the location of the Scratches and Consoles directory, use the
idea.scratch.path platform property. To change the location of just the Scratches directory, use the
idea.scratch.path/scratches platform property. For more information, see Advanced configuration.
Include a scratch file into your project
If a scratch file grows into something that you want to use in your project, move it into the desired directory of your project structure.
Open a scratch file in the editor or select it under thedirectory in the Project view, press F6, and select the target directory in your project.
Drag a scratch file from thedirectory in the Project view to the target directory in your project.
Select a scratch file in thedirectory in the Project view and press Ctrl+X, then select the target directory in your project and press Ctrl+V.
Change the language of a scratch file or buffer
In the Project tool window, open the .
Right-click a scratch file or buffer and then click Change Language.
Select the desired language. You can start typing the name of the language to narrow down the list.
View documentation for scratches
Select any scratch file or buffer in the Project tool window and press Ctrl+Q to view quick documentation with the location, type, size, creation and modification date of the file.