安装 Symfony 应使用 composer create-project,而非已废弃的 symfony new 或无效的 global require;推荐 skeleton(API/微服务)或 website-skeleton(传统 Web);需确保目录不存在、手动补装依赖、清缓存并检查环境配置。

直接用 composer create-project,别碰 symfony new 或全局 require
现在装 Symfony 就是跑一条命令,其他全是弯路。官方早就不维护 symfony new 命令了——它依赖已废弃的 Symfony CLI 工具,且不会随 Composer 自动安装;而 composer global require symfony/symfony 只会拉下个空壳包,没 bin/console、没 public/index.php、连 App\Kernel 类都找不到。
-
composer create-project symfony/skeleton my_project:最小骨架,适合 API 或微服务,启动快、依赖干净 -
composer create-project symfony/website-skeleton my_project:带 Twig、WebProfiler、AssetMapper 和基础构建支持,适合传统 Web 项目 - 目录
my_project必须不存在,否则命令直接失败(不覆盖) - 想锁定 LTS 版本?加
--version=6.4.*,避免拉到 unstable 分支
vendor/autoload.php 找不到?大概率是 composer install 没真跑
很多人跑完 create-project 就急着 php public/index.php,结果报 Warning: require(vendor/autoload.php): failed to open stream——这不是 Symfony 的问题,是 Composer 根本没装依赖。
-
create-project末尾虽自动执行了一次install,但某些网络环境或缓存异常会导致失败,必须手动补跑:cd my_project && composer install - 如果之前误加过
--no-autoloader或删过vendor/autoload.php,运行composer dump-autoload重建即可 - Windows 下若提示 “The system cannot find the path specified”,先检查防病毒软件是否拦截了临时文件写入
装完不能访问 http://localhost:8000?三个关键检查点
即使 create-project 和 composer install 都成功,本地起不来服务往往卡在三件事上。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 确认
public/index.php存在且可读——缺失说明 skeleton 拉取中断或被误删 - 检查
.env文件里APP_ENV=dev是否生效(生产环境别用dev,也别漏改) - 首次运行前必须清缓存:
php bin/console cache:clear,否则var/cache目录权限不对(尤其 WSL/Docker 下必报Unable to write in the cache directory) - 不想装 Symfony CLI?直接用 PHP 内置服务器:
php -S 127.0.0.1:8000 -t public,更轻量、少权限问题
想加 Doctrine/Twig/UX 组件?别一开始就 require 全家桶
最小骨架的好处就是干净,但新手常忍不住一上来就 composer require doctrine orm,结果依赖爆炸、Flex recipe 冲突、甚至破坏初始结构。
- Doctrine、Twig、WebServerBundle 这些,等项目初始化完成后再按需装:
composer require doctrine、composer require twig - UX 类组件(如
symfony/ux-turbo)目前多为dev-main状态,得显式指定:composer require symfony/ux-turbo:dev-main - 如果改了
composer.json里的"minimum-stability": "dev",上线前务必改回"stable",否则可能引入不稳定版本 - 千万别手动把
"type": "project"改成"library"——这会让bin/console启动时找不到App\Kernel
最易被忽略的是 Flex recipe 的执行时机:它只在 composer install 或 require 时触发,一旦跳过或中断,config/packages/ 下就缺关键配置,后续所有命令都会报错,但错误信息往往不指向根源。

















