platformsh/laravel-bridge

在 Platform.sh 上运行 Symfony Flex 的桥梁库

2.2.2 2023-12-12 17:20 UTC

This package is auto-updated.

Last update: 2024-08-29 13:25:25 UTC


README

这个简单的桥梁库将基于 Laravel 的应用程序连接到 Platform.sh。在典型情况下,它应该完全是一次性设置。

Laravel 偏好通过具有特定名称和格式的环境变量来接收所有配置。Platform.sh 以不同的特定格式提供配置信息作为环境变量。这个库负责将 Platform.sh 变量映射到 Laravel 期望的常见值格式。

使用方法

只需使用 Composer 需求这个包。当包含 Composer 的自动加载时,这个库将被激活,并设置环境变量。只要在 Laravel 配置引导之前完成(它几乎肯定会这样做),一切都应该正常工作,无需进一步的用户交互。

composer require platformsh/laravel-bridge

注意,在更新此包后,请确保在相关的 platform.sh 环境中清除缓存。

php artisan cache:clear

执行映射

  • 如果定义了一个名为 database 的 Platform.sh 关系,它将被视为 SQL 数据库,并映射到 Laravel 的 DB_* 环境变量。

  • 如果定义了一个名为 rediscache 的 Platform.sh 关系,它将被映射到 Laravel 的 REDIS_* 环境变量。此外,CACHE_DRIVER(Laravel v10 及以下)和 CACHE_STORE(Laravel v11+)变量将被设置为 redis 以自动激活它。

  • 如果定义了一个名为 redissession 的 Platform.sh 关系,SESSION_DRIVER 将设置为 redis,并基于该关系设置 REDIS_* 变量。注意:这意味着您必须将 2 个关系设置为相同的 Redis 服务和端点,因为 Laravel 重复使用相同的后端连接。

  • Laravel 的 APP_KEY 是基于 PLATFORM_PROJECT_ENTROPY 变量设置的,该变量正是为此目的提供的。

  • Laravel 的 APP_URL 变量将基于可能的当前路由设置。

  • 如果尚未定义,将 SESSION_SECURE_COOKIE 变量设置为 true。Platform.sh 环境默认为始终加密,因此没有理由允许未加密的cookie。可以通过将 Platform.sh 变量 env:SESSION_SECURE_COOKIE 设置为 0 来覆盖此设置。

  • MAIL_DRIVERMAIL_HOSTMAIL_PORT 变量被设置为支持通过 Platform.sh 邮件网关发送电子邮件。此外,MAIL_ENCRYPTION 值也被设置为 0 以禁用 TLS,因为在 Platform.sh 的网络中不需要或不受支持。请注意,这样做仅受 Laravel 6.0.4 及更高版本支持。在较早版本中,您必须手动修改 mail.php 并将 encryption 设置为 null

    'encryption' => null,

未设置的环境变量

Laravel 已经为许多环境变量提供了合理的默认值,并且此库不会覆盖它们。但是,可以通过设置名为 env:ENV_NAME 的 Platform.sh 变量来自定义它们。(注意 env: 前缀。)以下列出了一些最有可能被覆盖的变量,以方便起见:

  • env:APP_NAME:应用程序的人类友好名称。
  • env:APP_ENV:应用程序是否在 productiondevelopment 模式下。
  • env:APP_DEBUG:设置为 true 以启用详细错误消息。