PTAdmin 是基于 Laravel 的后台管理底座,为项目提供后台认证、权限管理、资源管理和插件运行等基础能力。本文从项目根目录出发,介绍应用代码、依赖组件、配置、网站入口和运行数据分别存放在哪里。
阅读顺序:本文是目录指南的基础篇。了解 PTAdmin 的项目结构后,如果你正在使用 PTCMS 建站,可以继续阅读 PTCMS 目录结构介绍,进一步定位 CMS 插件、页面模板和主题静态资源。
以下路径均相对于包含 artisan 和 composer.json 的项目根目录。目录结构以当前项目为参考,不同版本和安装方式可能存在差异;插件、主题及其资源目录应以实际安装情况为准。
一、先分清项目代码与后台组件
项目代码主要放在 app/、routes/、config/ 等目录,承载当前项目自己的业务与配置。
后台基础组件通过 Composer 安装到 vendor/。PTAdmin 相关组件位于 vendor/ptadmin/,它们与项目代码共同构成完整应用。
插件放在 addons/,用于扩展具体业务。例如,安装 PTCMS 后会出现 addons/Cms/,但 CMS 插件并不是每个 PTAdmin 项目都必须安装的部分。
二、项目根目录一览
下面列出与部署和开发关系最密切的目录。主题、语言资源及其他扩展文件是否存在,取决于项目版本和已安装内容。
项目根目录/
├── app/ 项目应用代码
├── addons/ 插件扩展目录
├── bootstrap/ 应用启动与引导
│ └── cache/ 框架启动缓存
├── config/ 项目配置
├── database/ 数据库结构与初始化
│ ├── migrations/ 数据库迁移
│ └── seeders/ 数据填充
├── lang/ 语言资源(按版本提供)
├── public/ 网站公开访问目录
│ ├── index.php Web 入口文件
│ └── storage 公开存储链接(配置后)
├── resources/ 项目视图等源码资源
├── routes/ 项目路由
├── storage/ 文件存储与运行数据
│ ├── app/ 应用存储文件
│ ├── framework/ 框架运行数据
│ └── logs/ 日志
├── templates/ 前台主题(按项目配置)
├── tests/ 自动化测试
├── vendor/ Composer 依赖
│ └── ptadmin/ PTAdmin 相关组件
├── .env 当前环境配置
├── .env.example 环境配置示例
├── artisan 命令行入口
├── composer.json 依赖声明与自动加载配置
└── composer.lock 依赖版本锁定文件
三、开发功能时关注哪些目录
1. app/:项目自身的应用代码
常见位置包括 app/Http/Controllers/、app/Models/ 和 app/Providers/,分别用于组织控制器、数据模型和服务提供者。项目也可以根据业务需要组织自己的服务层等目录。
扩展项目功能时,应先区分这段逻辑属于当前项目,还是适合封装为可复用插件,再选择放入 app/ 或独立插件中。
2. routes/:请求与功能的连接入口
routes/ 保存项目级路由,例如 web.php 和 api.php。路由决定请求交给哪个控制器或处理逻辑。
插件还可以注册自己的路由,因此某个功能没有出现在项目的 routes/ 中,并不代表它没有对应路由。插件内部的组织方式可参考后续的 PTCMS 目录指南。
3. resources/ 与 templates/:不同用途的视图资源
resources/ 用于项目视图及其他源码资源。采用前台主题机制的项目,还会使用 templates/主题名/ 保存主题模板。
实际页面从哪个位置加载,由项目视图配置和对应功能决定。使用 PTCMS 时,主题模板与静态资源的具体位置见 PTCMS 目录结构介绍中的前台主题说明。
4. vendor/:由 Composer 管理的依赖
当前结构中的 vendor/ptadmin/admin/ 提供后台基础能力,vendor/ptadmin/addon/ 提供插件相关能力,vendor/ptadmin/easy/ 提供资源与数据模型相关能力。实际安装的组件和版本应以项目依赖为准。
日常二次开发优先使用项目代码、插件或主题扩展。直接修改依赖包中的文件,可能在重新安装或升级依赖时被覆盖。
四、配置、数据库与命令行文件
config/ 与 .env
config/ 保存应用、数据库、缓存、文件存储等配置;.env 保存当前环境使用的配置值。.env.example 是环境配置示例,不应当包含真实生产密钥。
部署或迁移网站时,应检查环境配置是否与目标服务器匹配。不要把数据库密码、应用密钥等内容放到公开仓库或公开下载目录。
database/
database/migrations/ 保存数据库结构迁移,database/seeders/ 保存初始化数据逻辑。业务记录保存在数据库中,并不是把文章或用户数据写成文件存入这个目录。
artisan 与 Composer 文件
artisan 是项目命令行入口。执行项目命令前,应先进入包含该文件的根目录,并确认使用了与项目兼容的 PHP 环境。
composer.json 声明依赖、自动加载和脚本,composer.lock 锁定依赖版本。已有锁定文件的项目,部署时通常使用 composer install 安装既定版本,不要把 composer update 当成常规部署步骤。
五、网站入口、上传文件与日志
1. 网站运行目录:public/
Web 服务的公开根目录应指向项目中的 public/。在宝塔面板中,通常先选择项目目录,再将运行目录设置为 /public。
请求通过 public/index.php 进入应用,由框架和路由分配到具体功能。不要把整个项目根目录直接作为公开访问目录;伪静态规则可参考 PTAdmin 伪静态配置文档。
2. 上传文件:storage/app/
使用 Laravel 本地 public 存储盘时,公开文件通常保存到 storage/app/public/,通过 public/storage 符号链接对外访问。例如,storage/app/public/example.jpg 对应访问路径 /storage/example.jpg。
使用对象存储或自定义上传配置时,文件可能不在本地目录,应以后台存储设置和 config/filesystems.php 为准。私有文件和备份不能随意移入公开存储目录。
3. 运行数据:storage/ 与 bootstrap/cache/
storage/logs/ 保存日志;storage/framework/ 保存视图编译、会话或缓存等运行数据,具体取决于配置;bootstrap/cache/ 保存框架生成的启动相关缓存。
这些目录需要正确的写入权限。排查问题时,不要直接删除整个 storage/,其中可能同时包含需要保留的上传文件。
六、按任务快速定位
- 开发项目业务:先看
app/与routes/。 - 查后台依赖:看
composer.json、composer.lock与vendor/ptadmin/。 - 安装或开发插件:关注
addons/及对应插件的声明文件。 - 调整环境配置:核对
.env和config/。 - 查网站运行入口:确认 Web 服务指向
public/。 - 查异常与上传文件:分别检查日志配置、存储驱动和
storage/下的对应位置。
接下来阅读:基础目录明确后,进入 PTCMS 目录结构介绍,了解 CMS 插件如何接入这个底座,以及建站时模板、静态资源和文章内容分别在哪里维护。
客服中心