PhpStorm 通过识别 composer.json、配置 PHP 解释器与语言级别、启用框架插件及 Facet 来支持 Laravel/Symfony 等框架;必须运行 composer install、启用自动加载、手动配置目录角色,并持续维护以适配依赖变更。
PhpStorm 本身不“导入框架”,而是识别和配置已存在的 PHP 框架项目结构。关键在于让 PhpStorm 正确解析 composer.json、加载自动加载规则、识别框架特有的约定(如 Laravel 的 app/、routes/web.php),并启用对应语言级别与插件支持。
composer.json 并已执行 composer install
PhpStorm 的框架支持(如 Laravel、Symfony)高度依赖 Composer 的自动加载信息。若项目没有 composer.json,或虽有但未运行过 composer install,则 vendor/autoload.php

composer install
vendor/ 目录生成且非空;若使用 Laravel,检查是否存在 vendor/laravel/framework/src/Illuminate/Foundation/Application.php
框架项目通常要求 PHP 7.4+(Laravel 9+ 要求 PHP 8.0+),而 PhpStorm 默认可能沿用系统低版本解释器,导致语法报错(如 #[Attribute]、联合类型 string|int)或框架类无法识别。
... 设置正确 PHP 解释器路径(推荐使用 phpbrew、asdf 或 Docker 中的 PHP CLI 路径,而非系统默认 /usr/bin/php)PHP 8.1,否则 new DateTimeImmutable() 返回类型标注会被标红vendor/autoload.php;如为空,点击 “Reload project from composer.json”仅靠 Composer 支持不足以激活框架深度功能(如 Laravel Blade 模板跳转、路由映射、Eloquent 模型关系推导)。必须启用对应插件,并手动添加 Framework Support Facet。
app/、config/、routes/ 等目录角色app/ 设为 “Application Root”,public/ 设为 “Web Root”,resources/views 设为 “Views Root”即使完成上述步骤,仍可能出现跳转失效、Blade 变量无补全、Route::get() 参数不识别等问题。这不是配置遗漏,而是 PhpStorm 对动态调用链(如 Laravel 的门面 Facade、魔术方法 __callStatic)解析存在天然局限。
{{$user->name}} 标红?在 resources/views 下任意 .blade.php 文件顶部加注释:@var \App\Models\User $user
Auth::user() 返回类型无法推导?安装 “Laravel Idea” 商业插件(非必需但显著提升体验),或在方法调用前加 PHPDoc:/** @var \Illuminate\Contracts\Auth\Authenticatable|null $user */ $user = Auth::user();
composer.json 后新引入的包类不识别?右键 composer.json → “Reload project from composer.json”,或手动执行 composer dump-autoload -o
框架项目不是“导入一次就万事大吉”的静态结构。每次切换分支、更新依赖、升级框架主版本,都需重新验证 vendor/autoload.php 加载状态、PHP 语言级别匹配度,以及 Facet 中目录角色是否仍准确 —— 这些才是实际开发中最常卡住人的点。