本文目录导读:

- 文件系统 (Filesystem) 适配器
- 缓存 (Cache) 适配器
- 队列 (Queue) 适配器
- 邮件 (Mail) 适配器
- 会话 (Session) 适配器
- 日志 (Logging) 适配器
- 数据库 (Database) 适配器
- 广播 (Broadcasting) 适配器
- 其他常用适配器
Laravel 的适配器(通常指文件系统、缓存、队列、会话等组件的底层驱动)支持多种驱动,具体支持哪些驱动取决于你使用的是哪个适配器(例如文件系统、缓存、队列、邮件、数据库等)。
以下是 Laravel 常见适配器及其支持的驱动列表:
文件系统 (Filesystem) 适配器
Laravel 使用 Flysystem 库,支持以下驱动:
- local:本地磁盘存储(默认)
- public:公开磁盘(通常指向
storage/app/public,通过符号链接访问) - s3:Amazon S3 云存储
- gcs:Google Cloud Storage(需额外安装包
league/flysystem-google-cloud-storage) - ftp:FTP 服务器
- sftp:SFTP 服务器
- memory:内存存储(测试用)
- azure:Azure Blob Storage(需额外安装包
league/flysystem-azure-blob-storage) - webdav:WebDAV 服务器(需额外安装包
league/flysystem-webdav)
配置示例(config/filesystems.php):
'disks' => [
'local' => [
'driver' => 'local',
'root' => storage_path('app'),
],
's3' => [
'driver' => 's3',
'key' => env('AWS_ACCESS_KEY_ID'),
'secret' => env('AWS_SECRET_ACCESS_KEY'),
'region' => env('AWS_DEFAULT_REGION'),
'bucket' => env('AWS_BUCKET'),
],
],
缓存 (Cache) 适配器
Laravel 缓存支持多种后端驱动:
- file:文件缓存(默认使用
storage/framework/cache/data) - database:数据库表缓存(需创建
cache表) - redis:Redis 缓存(推荐)
- memcached:Memcached 缓存
- array:数组缓存(请求生命周期内,测试用)
- apc / apcu:APC 用户缓存(需启用 PHP 扩展)
- dynamodb:Amazon DynamoDB 缓存
- octane:Laravel Octane 的内存缓存(用于高性能)
配置示例(config/cache.php):
'default' => env('CACHE_DRIVER', 'file'),
'stores' => [
'file' => [
'driver' => 'file',
'path' => storage_path('framework/cache/data'),
],
'redis' => [
'driver' => 'redis',
'connection' => 'cache',
],
],
队列 (Queue) 适配器
Laravel 队列支持以下驱动:
- sync:同步执行(不真正排队,立即执行,默认)
- database:数据库表队列(需创建
jobs表) - redis:Redis 队列
- sqs:Amazon SQS(标准队列和 FIFO 队列)
- beanstalkd:Beanstalkd 队列
- null:丢弃任务(测试用)
- file:文件队列(简单任务)
- rabbitmq:RabbitMQ(需额外安装包
vladimir-yuldashev/laravel-queue-rabbitmq)
配置示例(config/queue.php):
'default' => env('QUEUE_CONNECTION', 'sync'),
'connections' => [
'database' => [
'driver' => 'database',
'table' => 'jobs',
'queue' => 'default',
],
'redis' => [
'driver' => 'redis',
'connection' => 'default',
'queue' => 'default',
],
],
邮件 (Mail) 适配器
Laravel 邮件支持以下驱动(基于 Symfony Mailer):
- smtp:SMTP 服务器
- sendmail:本机 sendmail 程序
- mailgun:Mailgun API
- postmark:Postmark API
- ses:Amazon SES API
- log:将邮件写入日志文件(测试用)
- array:存储邮件到数组(测试用)
- failover:自动切换到一个或多个备用驱动
配置示例(config/mail.php):
'default' => env('MAIL_MAILER', 'smtp'),
'mailers' => [
'smtp' => [
'transport' => 'smtp',
'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
],
'ses' => [
'transport' => 'ses',
],
],
会话 (Session) 适配器
Laravel 会话支持以下驱动:
- file:文件存储(默认,存储在
storage/framework/sessions) - cookie:完全存储在 Cookie 中(安全风险较低,但容量有限)
- database:数据库表(需创建
sessions表) - redis:Redis 会话存储
- memcached:Memcached 会话存储
- array:数组存储(请求生命周期内,测试用)
- dynamodb:Amazon DynamoDB
配置示例(config/session.php):
'driver' => env('SESSION_DRIVER', 'file'),
日志 (Logging) 适配器
Laravel 使用 Monolog 库,支持多种驱动(通道):
- single:单个日志文件
- daily:按天滚动的日志文件(保留策略可配置)
- slack:发送日志到 Slack 频道
- papertrail:发送日志到 Papertrail
- syslog:系统日志
- errorlog:PHP 错误日志
- monolog:自定义 Monolog 处理器
- stack:将日志发送到多个通道
- emergency:紧急备用通道(当主通道失败时)
配置示例(config/logging.php):
'default' => env('LOG_CHANNEL', 'stack'),
'channels' => [
'single' => [
'driver' => 'single',
'path' => storage_path('logs/laravel.log'),
],
'daily' => [
'driver' => 'daily',
'path' => storage_path('logs/laravel.log'),
'days' => 14,
],
],
数据库 (Database) 适配器
Laravel 数据库支持以下驱动(基于 PDO):
- mysql:MySQL / MariaDB
- pgsql:PostgreSQL
- sqlite:SQLite(常存储于
database/database.sqlite) - sqlsrv:Microsoft SQL Server
配置示例(config/database.php):
'default' => env('DB_CONNECTION', 'mysql'),
'connections' => [
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
],
],
广播 (Broadcasting) 适配器
Laravel 事件广播支持以下驱动:
- pusher:Pusher Channels
- ably:Ably Realtime
- log:写入日志(测试用)
- redis:Redis pub/sub(配合 Laravel WebSockets 或类似方案)
其他常用适配器
- HTTP 客户端:
guzzle(默认),可配置为log(测试用)或自定义处理器。 - 通知(Notification):
mail、database、broadcast、nexmo(Vonage)、slack、fcm(Firebase Cloud Messaging)等。
Laravel 适配器支持的驱动非常多,涵盖了本地到云端的各类服务,每个组件都有自己的配置文件和驱动选择,如果你需要查找某个特定组件的驱动列表,可以:
- 查阅对应组件的配置文件(位于
config/目录)。 - 运行
php artisan config:clear && php artisan config:cache后查看环境变量。 - 查看 Laravel 官方文档:https://laravel.com/docs
如果你的问题是关于自定义适配器(例如自定义文件系统驱动),Laravel 也允许你通过实现 Illuminate\Contracts\Filesystem\Factory 等接口来扩展新的驱动。