Creating and Managing Projects
Whatever you do in PhpStorm, you do that in the context of a project. A project is an organizational unit that represents a complete software solution. It serves as a basis for coding assistance, bulk refactoring, coding style consistency, and so on.
Once you have opened a folder in PhpStorm, the .idea subfolder is added to it where PhpStorm stores its internal configuration settings, for example, for the project code style or the version control system.
PhpStorm does not support direct editing of files on remote hosts. Therefore to work with remote sources in PhpStorm, you need to download them and arrange them in a PhpStorm project. To keep your local and remote sources synchronized, configure automatic upload using the Upload changed files automatically to the default server list in the Options dialog.
A project in PhpStorm is represented in the Directory Based Format. A project directory is marked with icon.
Such project directory contains the .idea directory, with the following files:
*.iml file that describes the project structure.
workspace.xml file that contains your workspace preferences.
-
A number of xml files. Each xml file is responsible for its own set of settings, that can be recognized by its name: projectCodeStyle.xml, encodings.xml, vcs.xml and so on.
Thus, for example, adding a new run/debug configuration and changing encoding will affect two different xml files. This helps avoid merge conflicts when the project settings are stored in a version control system and modified by the different team members.
All the settings files in the .idea directory should be put under version control except workspace.xml, which stores your local preferences. The workspace.xml file should be marked as ignored by VCS.
.idea directory is not visible in the Project view of the Project Tool Window.
In this section:
- Creating New Project from Scratch
- Creating a Workshop Project
- Importing Project from Existing Source Code
- Generating a Project from a Framework Template
- Opening, Reopening, and Closing Projects
- Opening Multiple Projects
- Saving Projects as Templates
- Renaming Projects
- Scope
- Path Variables
- Cleaning System Cache