用 composer create-project 是启动 yii2 项目的最稳妥方式,它自动拉取完整骨架、安装依赖并生成必要文件;手动 require 只装内核,缺乏应用结构,易导致白屏、404 等问题。

用 composer create-project 装 Yii2 项目,直接跑就行
只要本地装了 Composer,create-project 是最稳妥的启动方式——它自动拉取完整骨架、安装依赖、生成必要文件(比如 web/index.php),比手动 require 少踩一堆权限和 autoload 的坑。
常见错误现象:Could not find package yiisoft/yii2-app-basic,多半是用了过时包名或没加版本约束;或者执行后 vendor/ 空空如也,其实是网络卡在下载 yiisoft/yii2 子包上(国内建议提前配好阿里云镜像)。
- 命令必须带具体应用模板包名,例如:
composer create-project --prefer-dist yiisoft/yii2-app-basic myproject - Yii2 官方维护三个模板:
yii2-app-basic(基础)、yii2-app-advanced(前后端分离结构)、yii2-app-api(API 专用),别手误写成yii2或yii - 加
--stability=stable防止意外拉到 dev 分支;加--no-interaction可跳过交互式配置(CI 场景必备) - 首次运行会生成
environments/目录和init脚本,记得紧接着跑./init(Windows 用init.bat)来初始化环境配置
为什么不能只 composer require yiisoft/yii2
单纯 require 只装核心框架,不带路由、入口文件、配置模板、Web 服务器适配逻辑——你得自己搭 index.php、写 config/web.php、处理 AssetBundle 加载,甚至要手动注册 autoloader。对新手来说,90% 的「白屏」「404」「Class not found」都源于此。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
典型使用场景:你只是想快速验证某个组件(比如 yii2-bootstrap5)是否兼容当前项目,才适合局部 require;但凡要建新站,绕不开 create-project。
-
yii2包本身是「框架内核」,不含应用层结构,composer.json 中没有autoload.files指向入口逻辑 - 模板包(如
yii2-app-basic)才定义了标准目录结构、预置了Entry Script和Application Instance初始化流程 - 漏掉模板,
vendor/bin/yii命令可能无法识别serve或migrate子命令——因为这些命令由模板里的console/config/main.php注册
Yii2 模板版本和 PHP 兼容性必须对齐
Yii2.0.x 最高只支持到 PHP 7.4,而 yii2-app-basic 的 2.0.48 版本已是其最终版;如果你用 PHP 8.0+,必须切到 Yii2.1(开发中)或直接上 Yii3。强行在 PHP 8.1 上跑 create-project yiisoft/yii2-app-basic,大概率卡在 mbstring 扩展检测或 ReflectionParameter::getClass() 弃用警告上。
- 查清当前 PHP 版本:
php -v;再查模板支持范围——比如yiisoft/yii2-app-basic:2.0.*的composer.json里明确写了"php": ">=5.4.0",但实际运行时依赖的symfony/polyfill-mbstring在 PHP 8.1 下可能失效 - 国内镜像源(如阿里云)有时同步滞后,若提示
Could not find package ... in a version matching...,先试composer clear-cache,再换官方源:composer config -g repo.packagist composer https://packagist.org - Windows 用户注意路径分隔符:
init脚本里硬编码了/,若用 Git Bash 运行失败,改用 PowerShell 或 CMD
创建完立刻要检查的三件事
项目目录生成后别急着 php yii serve,有三个点不验清楚,后面调试全是迷雾。
- 确认
web/是 Web 根目录:Apache/Nginx 必须指向此处,否则index.php不会被路由到,表现为所有请求返回 404 或直接下载 PHP 文件 - 检查
runtime/和web/assets/是否可写(Linux/macOS 执行chmod 777 runtime web/assets;Windows 确保 IIS 用户或 PHP 进程有修改权限) - 运行
php yii看是否列出命令列表;如果报Class 'Yii' not found,说明vendor/autoload.php没被正确引入——大概率是web/index.php里require __DIR__ . '/../vendor/autoload.php';的相对路径错了










