gpt4 book ai didi

php - 如何在不使用 DotEnv 的情况下在 Symfony 应用程序中定义 APP_ENV?

转载 作者:行者123 更新时间:2023-12-04 13:19:18 25 4
gpt4 key购买 nike

默认情况下,Symfony 需要在 Web 服务器上而不是在应用程序中进行配置。就我而言,在服务器上设置这些变量非常复杂。所以,我想要的是在应用程序(php 或 yaml)中设置这些变量没有 DotEnv 和网络服务器环境变量

这些是我需要定义的环境变量:

APP_ENV 
APP_SECRET
DATABASE_URL
MONGODB_URL
MAILER_URL

这是我发现的,除了 APP_ENV 在任何地方都不起作用:

APP_ENV: ???
APP_SECRET: config/packages/framework.yaml
DATABASE_URL: config/packages/doctrine.yaml
MONGODB_URL: config/packages/doctrine_mongodb.yaml
MAILER_URL: config/packages/swiftmailer.yaml

在 Symfony 4 中我们在哪里定义 APP_ENV

最佳答案

您可以使用 .env.local.php 返回一个数组。

此文件通常是通过运行 composer dump-env [env] 生成的,但没有什么可以阻止您手动创建它。

此文件加载之前 DotEnv 加载“.env”文件,它是一个简单的数组,与$_SERVER$_ENV。如果此文件存在,则根本不使用 DotEnv 组件。

例如你可以返回类似的东西:

return [
'APP_ENV' => 'prod',
'APP_SECRET' => 'verysecretmuchobscure',
'CORS_ALLOW_ORIGIN' => '^https?://localhost(:[0-9]+)?$',
'DATABASE_URL' => 'mysql://db_user:db_password@127.0.0.1:3306/db_name',
'JWT_SECRET_KEY' => '%kernel.project_dir%/var/keys/private.pem',
'JWT_PUBLIC_KEY' => '%kernel.project_dir%/var/keys/public.pem',
'JWT_PASSPHRASE' => 'anotherthing',
];

如果您使用的是 Symfony 4.1+,则所有这些都适用。在您的问题中,您说的是 Symfony 4,但没有指定您使用的是哪个次要版本。

如果您使用的是 4.0,则需要按照详细说明的步骤进行操作 here升级您的应用程序:

  1. 从仓库中复制 bootstrap.php
  2. 从存储库中复制 index.php,或更新您的 index.php,使其与要求 bootstrap.php 的那个相匹配(以防您的 index.php 对其进行了修改)<
  3. 对于您的 console 脚本(如果存在)也是如此。
  4. 更新你的主.gitignore
  5. 重命名/移动/删除您现有的 .env 文件。

关于php - 如何在不使用 DotEnv 的情况下在 Symfony 应用程序中定义 APP_ENV?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55926140/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com