Composer安装Symfony框架教程 快速创建Symfony项目方法【演示】

8次阅读

composer create-project 创建 symfony 项目,因其一次性拉取完整骨架(含路由、内核、目录结构等),而 global require 只装零散组件,无法启动;常用方式有 skeleton(API)、website-skeleton(Web)、指定版本如 ^6.4。

Composer安装Symfony框架教程 快速创建Symfony项目方法【演示】

直接用 composer create-project 就能生成可运行的 Symfony 项目,不需要单独“安装框架”——Symfony 不是全局安装的库,而是按项目依赖引入的。

为什么不能用 composer global require symfony/symfony

这是最常见的误解。Symfony 核心组件(如 symfony/http-kernel)确实能全局装,但那只是零散包,没法直接跑起来。真正可启动的项目必须包含:路由配置、内核类、环境目录(config/src/public/)、以及 composer.json 中预设的自动加载和脚本。这些只有 create-project 能一次性拉下来。

  • create-project 实际上是克隆官方 skeleton 仓库(如 symfony/skeleton 或带 Web 的 symfony/website-skeleton),再执行 composer install
  • 全局 require 的 symfony/consolesymfony/framework-bundle 只是单个组件,没骨架、没命令行入口、没 bin/console
  • 强行拼凑会导致 class not found: appKernelNo routes found 这类启动失败

create-project 创建项目的 3 种常用方式

根据需求选骨架,不是版本越新越好,也不是功能越多越合适:

  • 纯 API / 微服务场景 → composer create-project symfony/skeleton myapi(最小依赖,无 Twig、无 Web Server 配置)
  • 传统 Web 应用(含模板、表单、Doctrine)→ composer create-project symfony/website-skeleton myweb
  • 想指定 Symfony 版本(比如要 v6.4 LTS)→ composer create-project symfony/website-skeleton:^6.4 myapp

注意:website-skeleton 默认带 symfony/web-server-bundle(已弃用),但不影响使用;现代推荐用 symfony server:start,它由 symfony/cli 提供,需单独安装。

创建后立刻能跑起来的关键检查点

项目生成完别急着写代码,先确认基础环境是否就绪,否则后续报错会掩盖真实问题:

  • 检查 php 版本:Symfony 6.x 要求 PHP 8.1+,运行 php -v 确认,低于则报 Your requirements could not be resolved
  • 检查 public/index.php 是否存在且可读——这是 Web 入口,缺失说明 skeleton 拉取失败或被误删
  • 运行 php -S localhost:8000 -t public 测试内置服务器能否响应;若报 Failed to open stream: No such file,大概率是 public/ 下没 index.phpindex.php 里引用了不存在的 autoload.php
  • 首次运行 php bin/console server:start 前,确保已安装 Symfony CLI(curl -sS https://get.symfony.com/cli/installer | bash),否则提示 command not found

最常被跳过的一步:运行 composer install 后,var/cache/var/log/ 目录权限没设对,linux/macOS 下容易卡在 “The stream or file … could not be opened” ——这不是代码问题,是目录不可写。直接 chmod -R 777 var/(开发阶段)比反复查 SELinux 或 umask 更快定位。

text=ZqhQzanResources