laravel 官方包均以 laravel/xxx 命名、通过 composer require 安装,但需区分是否支持自动发现及是否需执行配套 artisan 命令(如 publish、install、migrate)才能生效。

composer require 装的是包,不是“官方扩展插件”这个概念
Laravel 没有统一叫“官方扩展插件”的东西——它有的是 laravel/framework(核心)、laravel/tinker、laravel/sanctum、laravel/breeze 等独立维护的官方包。它们都托管在 Packagist,用 composer require 安装即可,但得知道具体名字。
常见错误现象:composer require laravel/plugin 报错 404,或装了个不存在的包名;有人搜“Laravel 官方插件列表”,结果去翻 GitHub 组织页,浪费时间。
- 所有 Laravel 官方包都发布在
laravel/xxx命名空间下,地址统一为 https://packagist.org/packages/laravel - 不是所有
laravel/xxx都需要手动 require:比如tinker和horizon默认不装,但fortify、sanctum这类开箱即用的认证/授权方案,必须显式安装 - 部分包(如
breeze、jetstream)是脚手架,装完还要跑命令(php artisan breeze:install),光require不够
哪些包能直接 composer require 后立刻用?
取决于包是否含自动发现(Auto-Discovery)和是否需配置。Laravel 5.5+ 的官方包大多支持自动注册服务提供者,但仍有例外。
-
laravel/tinker:装完就能直接运行php artisan tinker,无配置 -
laravel/sanctum:装完要跑php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"才生成配置和迁移 -
laravel/telescope:装完必须执行php artisan telescope:install+php artisan migrate,否则访问/telescope会 404 或报错Class 'Laravel\Telescope\TelescopeApplicationServiceProvider' not found -
laravel/passport:装完要php artisan passport:install,否则 OAuth 流程直接失败
别用 composer create-project 混淆“安装框架”和“装扩展”
composer create-project laravel/laravel myapp 是建新项目,不是装扩展。想给已有 Laravel 项目加功能,只用 composer require,别重拉整个框架。
- 错误做法:在已有项目里跑
create-project,结果覆盖掉app/、routes/等目录,代码全丢 - 正确路径:确认当前目录是 Laravel 项目的根(有
composer.json且含"laravel/framework"),再composer require laravel/sanctum - 如果提示
Your requirements could not be resolved,大概率是 PHP 版本或 Laravel 版本不匹配——查对应包的composer.json里"require": {"laravel/framework": "^10.0"}这类约束
装完不生效?先看 config/app.php 和自动发现
Laravel 官方包多数靠 Composer 自动发现机制注册服务提供者,但有些老项目或自定义配置会关掉它,导致包装了也无效。
- 检查
composer.json是否含"extra": {"laravel": {"dont-discover": []}}—— 如果dont-discover里写了包名(如"laravel/sanctum"),就得手动加到config/app.php的providers数组 - 运行
composer dump-autoload并非总是必要,但遇到类找不到(Class xxx not found)时可试试 - 环境缓存影响:改完配置后,别忘了
php artisan config:clear,否则可能还读着旧缓存
sanctum 却没 publish 配置,或装了 telescope 忘了 install,然后卡在 500 错误里反复查路由和中间件。










