推荐新项目用 composer create-project slim/slim-skeleton my-app,因它预置完整目录结构、PSR-7 实现及配置;若集成到现有项目,须同时安装 slim/slim:^4 和 slim/psr7:^1,并确保 PHP ≥ 8.0。

Composer 安装 Slim 框架不需要“教程对比”,直接用 composer create-project 最稳妥,其他方式容易漏掉 autoload 或环境适配。
为什么不用 composer require slim/slim 从空项目开始?
这会把 Slim 当作普通依赖装进已有项目,但 Slim 官方推荐的启动结构(如 public/index.php 入口、src/ 目录约定)不会自动生成。你得手动补全路由初始化、错误处理器、PSR-7 实现等——新手常卡在 Call to undefined function SlimFactoryAppFactory::create(),其实是缺了 slim/psr7 或 PHP 版本不匹配。
实操建议:
- 新项目一律优先用
composer create-project slim/slim-skeleton my-app - 如果必须集成到现有项目,务必同时安装:
composer require slim/slim:^4 slim/psr7:^1 - PHP 版本必须 ≥ 8.0(Slim 4.12+ 强制要求),低于 8.0 会触发
ParseError: syntax error, unexpected token "string"
slim/slim-skeleton 和 slim/slim 的区别在哪?
前者是带完整目录结构、预置开发配置和示例路由的脚手架;后者只是核心库包。骨架里已包含 public/index.php、config/settings.php、src/Dependencies.php 等关键文件,省去手动组织 PSR-11 容器、错误中间件、路由缓存等步骤。
常见错误现象:
- 直接
require 'vendor/autoload.php'后调用AppFactory::create()报错:没加载 PSR-7 实现,骨架中已通过slim/psr7自动解决 - 运行时报
Failed to open stream: No such file or directory in public/index.php:说明没把 web server 文档根目录指向public/,不是代码问题 - 修改
src/下的类不生效:检查composer.json中是否漏了"autoload": {"psr-4": {"App": "src/"}}并执行了composer dump-autoload
安装后跑不起来?先查这三件事
Slim 本身极轻量,启动失败几乎都出在环境或配置链路上,而非框架缺陷。
实操检查项:
- 确认
public/index.php第一行是<?php declare(strict_types=1);,且 PHP 开启了short_open_tag = Off(否则报白屏) - 用
php -S localhost:8000 -t public启动内置服务器时,若提示Could not open input file: public,说明当前路径不对,cd 进项目根目录再执行 - Apache 用户注意
.htaccess是否启用重写模块,Nginx 用户需确保try_files $uri $uri/ /index.php?$query_string;已配置
真正麻烦的从来不是安装命令,而是 PHP 版本、Web 服务器路由转发、自动加载配置这三环中任意一环没对齐——它们不会报 Slim 相关错误,但会让你以为是框架问题。