composer 是 php 通用依赖管理工具,非 thinkphp 插件;初始化项目应执行 composer create-project topthink/think myapp,扩展通过 composer require 安装,禁用 update 防破坏性升级,vendor 不可删、不可挪、不可提交,composer.lock 必须纳入版本控制。

Composer 不是 ThinkPHP 的插件,它是 PHP 项目的通用依赖管理工具;ThinkPHP 本身就是一个用 Composer 安装和组织的包。
怎么初始化一个 ThinkPHP 项目(用 Composer)
别去官网下 ZIP 包,直接用 composer create-project 拉官方骨架。新版(6.x/7.x)不支持手动复制 vendor,必须走 Composer 流程。
- 运行
composer create-project topthink/think myapp,myapp是你的项目目录名 - 如果提示找不到包,先确认是否用了国内镜像:执行
composer config -g repo.packagist https://packagist.phpcomposer.com(或换成https://mirrors.aliyun.com/composer/) - 生成后,
think命令行脚本在项目根目录,不是全局命令——别输think run前忘了php think
怎么添加第三方扩展包(比如 think-swoole)
ThinkPHP 6/7 的扩展基本都是独立 Composer 包,不是“下载放进 extend 目录”那种老方式。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 执行
composer require topthink/think-swoole,安装后自动注册服务提供者(前提是包遵循 PSR-4 和 ThinkPHP 的think-service规范) - 某些包需要手动配置,比如
think-swoole要改config/swoole.php,但配置文件本身是 Composer 安装后自动生成的,别自己新建 - 别用
composer install替代require:前者只读composer.lock,不会更新composer.json,加包后没写进 JSON 就等于没加
为什么 composer update 后项目崩了
ThinkPHP 对主版本升级极其敏感,update 默认会升到最新兼容版,但 6.0.x 和 6.1.x 的中间件、事件机制有破坏性变更。
- 日常开发禁用
composer update,只用composer update topthink/framework明确指定升级范围 - 看
composer.json里topthink/framework的版本约束:用"^6.0.0"比"6.*"更安全,后者可能跨小版本引入不兼容改动 - 升级前务必检查 CHANGELOG.md(在框架 GitHub 仓库的 Releases 页面),重点关注
BC Breaks标签项
vendor 目录能不能删、能不能挪、能不能 git 提交
不能删,不能挪,绝对不要 git 提交。
-
vendor/是 Composer 运行时生成的,内容由composer.lock精确锁定,删了就跑不起来 - 别改
composer.json里的vendor-dir:ThinkPHP 的自动加载器(think\initializer\Loader)硬编码读取vendor/autoload.php,挪了就报Class not found -
.gitignore必须包含/vendor和/runtime,否则团队协作时别人git pull后直接无法启动
最常被忽略的是 composer.lock 文件——它比 composer.json 还重要。换机器部署时,只要 composer install(不是 require 或 update),就能还原一模一样的依赖树。手抖删了 lock 文件,就等于放弃了可重复部署的底线。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!










