直接安装 slim 4,勿用已停止维护且与 php 8.1+ 兼容性差的 slim 3;推荐用 composer create-project slim/slim-skeleton my-app 初始化项目,它预装 nyholm/psr7、slim/psr7 等兼容组件,提供开箱即用的完整骨架。

直接装 Slim 4 就行,别碰 Slim 3 —— 它已停止维护,且 Composer 安装方式和依赖约束跟现在主流 PHP 版本(8.1+)冲突明显。
用 composer create-project 初始化 Slim 项目
这是最干净的起步方式,自动处理框架骨架、PSR-7 实现、路由和错误处理器,避免手动配错依赖版本。
- 运行
composer create-project slim/slim-skeleton my-app,它会拉取官方骨架(基于 Slim 4.13+) - 骨架默认用
nyholm/psr7和slim/psr7,比旧版zendframework/zend-diactoros更轻、更兼容 PHP 8.2+ - 别用
composer require slim/slim单独装核心包——它不带路由中间件、没示例配置,新手容易卡在“装完了但跑不起来”
遇到 Could not find package slim/slim-skeleton
不是包没了,是你的 Composer 镜像或版本太老,或者 PHP 版本不匹配。
- 先确认 PHP 版本:Slim 4 要求 PHP >= 7.4,推荐 8.1+;运行
php -v看清楚 - 更新 Composer:
composer self-update(旧版 1.x 不支持 Slim 4 的依赖解析) - 临时切回 Packagist 官方源:
composer config -g repo.packagist composer https://packagist.org,排除国内镜像同步延迟问题
slim/slim 和 slim/slim-skeleton 到底该用哪个?
只选后者。前者只是核心 HTTP 抽象层,没路由实现、没 PSR-7 默认绑定、没 public/index.php 入口文件。
-
slim/slim-skeleton是开箱即用的最小可运行结构,含routes.php、settings.php、dependencies.php - 如果你硬要从零搭,得手动 require 至少 3 个包:
slim/slim+nyholm/psr7+slim/psr7,还必须手写ServerRequestFactory绑定,极易出TypeError: Argument #1 ($request) must be of type Psr\Http\Message\ServerRequestInterface - Skeleton 的
composer.json已锁死兼容组合,省掉你查半天“为什么 Request 对象传不进去”的时间
真正麻烦的不是安装命令,而是搞清 Slim 4 的依赖链里哪些包必须成对出现、哪些已被弃用。比如 slim/http 在 4.9 后就彻底移除了,但很多中文教程还在抄它。装完记得跑一遍 composer show,重点盯 slim/slim、nyholm/psr7、slim/psr7 这三个版本是否对得上官方 4.x 分支的 composer.json。











