phpstorm支持一次性递归创建嵌套目录,只需在目标父目录节点右键选择new | directory,输入用正斜杠分隔的路径(如app/http/controllers),ide自动补建所有缺失层级。

PhpStorm 里直接建多级目录,别用“新建文件夹”点七次
PhpStorm 支持一次性创建嵌套路径,比如 app/Http/Controllers,不用先建 app,再进它建 Http,再进……反复右键。关键在路径输入时用正斜杠 / 分隔,IDE 会自动递归创建所有缺失层级。
常见错误是粘贴路径后直接回车,结果只建了最后一级(如只建了 Controllers),因为没勾选“递归创建”——其实根本不需要勾选,只要路径含 /,且你是在目标父目录下触发的 New | Directory,它就默认递归。
- 必须在**目标父目录节点上右键**(比如想建
src/Models/User,就得先选中src文件夹再右键) - 路径中用
/,不要用\(Windows 下也一样,src\Models\User会被识别为单个文件夹名) - 如果路径开头带
/(如/app/Http),IDE 会从项目根开始解析;不带则相对当前选中的父目录 - 已存在的中间目录不会报错,也不会覆盖,只补建缺失的部分
用 terminal 一行命令批量建一堆平行目录
当你要建的不是嵌套结构,而是多个同级目录(比如 logs、cache、uploads),在 PhpStorm 底部 Terminal 里敲命令比点鼠标快得多。
Windows 下执行:mkdir logs cache uploads;macOS/Linux 下同理,但注意空格分隔,不能写成 mkdir logs,cache,uploads(逗号会变成文件夹名的一部分)。
- 路径含空格?用双引号包住整个路径,如
mkdir "my folder" - 要同时设权限(Linux/macOS),加
-m参数:mkdir -m 755 logs cache - 想确保不报错(比如目录已存在),加
-p参数:mkdir -p logs cache uploads—— 这个-p就是“递归 + 忽略已存在”的开关 - PhpStorm 的 Terminal 默认工作目录就是项目根,不用
cd,直接敲
PHP 脚本批量建目录:mkdir() 的第三个参数必须为 true
如果你需要动态生成路径(比如按日期、用户 ID、配置项拼出目录),就得写 PHP 脚本。但 mkdir('a/b/c') 默认失败,除非显式传 true 开启递归。
别写 if (!file_exists($path)) { mkdir($path); } —— 这样只建最后一级,前面的 a/b 不存在时直接 Warning 报错。
- 正确写法:
mkdir($path, 0755, true),第三个参数true是硬性要求 -
0755在 Windows 下无效,可省略或写0777,但别依赖它控制权限 - 务必用
is_dir($path)判断,而不是file_exists()—— 后者对同名文件也返回true,导致跳过创建 - 路径里有变量?先用
realpath()或dirname()做归一化,避免../穿透或相对路径混乱
别让 tree 命令导出的结构误导你去手动建目录
tree /f > structure.txt 导出的是文件系统快照,不是建目录指令。直接拿它当 PhpStorm 新建操作的输入,会卡在“怎么把文本转成动作”这一步——你得自己拆行、过滤符号、识别目录行,效率反而不如终端命令。
真正该用 tree 的场景,是生成文档或核对结构,而不是驱动创建。如果真要自动化,脚本应读取 structure.txt 中的目录行(过滤掉文件和树形字符),再调用 mkdir(..., ..., true),而不是试图让 PhpStorm 解析文本。
- 导出时加
/I(Windows)或-I(macOS/Linux)排除node_modules、vendor等干扰项 - 脚本里别用
file_get_contents()直接读整文件,用file()按行读,更省内存 - 每行路径前的缩进空格、
├──、└──符号必须清除,否则mkdir()会因非法字符失败 - 最简判断逻辑:行末无
.且不含.(如.gitignore),基本可视为目录行
__DIR__,三者指向不同位置时,同样的路径字符串会产生完全不同的结果。php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!










