Laravel适配器支持哪些驱动

wen PHP项目 1

本文目录导读:

Laravel适配器支持哪些驱动

  1. 文件系统 (Filesystem) 适配器
  2. 缓存 (Cache) 适配器
  3. 队列 (Queue) 适配器
  4. 邮件 (Mail) 适配器
  5. 会话 (Session) 适配器
  6. 日志 (Logging) 适配器
  7. 数据库 (Database) 适配器
  8. 广播 (Broadcasting) 适配器
  9. 其他常用适配器

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)maildatabasebroadcastnexmo(Vonage)、slackfcm(Firebase Cloud Messaging)等。

Laravel 适配器支持的驱动非常多,涵盖了本地到云端的各类服务,每个组件都有自己的配置文件和驱动选择,如果你需要查找某个特定组件的驱动列表,可以:

  • 查阅对应组件的配置文件(位于 config/ 目录)。
  • 运行 php artisan config:clear && php artisan config:cache 后查看环境变量。
  • 查看 Laravel 官方文档:https://laravel.com/docs

如果你的问题是关于自定义适配器(例如自定义文件系统驱动),Laravel 也允许你通过实现 Illuminate\Contracts\Filesystem\Factory 等接口来扩展新的驱动。

抱歉,评论功能暂时关闭!