问题标签 [phpdotenv]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
1200 浏览

laravel - 如何在 Laravel Dusk 中覆盖环境变量

不幸的是config(['key' => 'newValue']),在 Dusk 设置中不起作用(用于覆盖配置值),大概是因为它会更改运行测试的系统的配置,而不是打开以执行流程的无头浏览器的体验。

有时我看不出需要临时更改某个 Dusk 测试的 env 值。

例如,通常在“黄昏连接”时临时设置QUEUE_DRIVER=sync,但在一项特定测试中,我需要检查数据库中“作业”表中的值。

在升级到 Laravel >=5.8(以及更新版本的 DotEnv)之前,我能够使用之前在 Dusk 测试中调用的这个函数$this->browse(...

我可以这样称呼它:$this->overrideDuskEnv(['QUEUE_DRIVER' => 'sync']);

但在最近的 Laravel 版本中,环境变量是不可变的(请参阅“只读 env Helper”)。

我怎样才能实现我的目标,Dusk.env.dusk.local用于大多数测试,但某些测试可能略有不同?

0 投票
1 回答
81 浏览

laravel - 拼命在 Laravel 中寻找一个非空的 $_ENV

我有一个控制台任务运行:

任务运行,它可以调用不同的服务,世界上一切都很好。但是,我有一个特定任务调用未加载配置的不同类。

出于特定原因,我希望阅读我的配置$_ENV(它允许我进行一些键值迭代并专门基于模式处理一些键)。但是这里 $_ENV 仍然是空的,我可以通过config()or读取配置env()

这绝不会通过 HTTP 调用或某些命令行调用发生(我无法理解调度程序调用和命令行调用的区别)。

拉拉维尔 5.6

编辑:这个问题保留在这里,因为我没有找到现有的相关问题为什么我的 $_ENV 是空的?

0 投票
2 回答
642 浏览

php - 在项目中调用 .env 文件的正确方法

我想看看.env在我的项目中调用文件的正确方法是什么?我正在与之合作的一位开发人员只是告诉我一切都已设置好,我所需要的只是.env在根目录中创建一个文件。

以下是函数的调用方式:

我的.env文件设置如下(我使用以下凭据创建了本地数据库):

这是正确的方法吗?我需要在.env文件中的名称、用户、密码和主机周围加上引号吗?我在 localhost 环境中执行所有这些操作。

0 投票
1 回答
1202 浏览

php - 从 Laravel 中的 .env 返回数据类型

我想根据我的环境拥有动态播种机。(例如,在测试中,我只希望播种 100 行,而本地则为 10'000)。

我在配置中创建了 seeder.php,它从 .env 文件中调用值。

当我在播种机中使用配置时,它会在 .env 中的一个值上返回一个字符串,该值应该是一个整数。例如:

.env.local:

配置\播种机.php:

用户播种机

以上无法正常工作,似乎config('user_count')返回一个字符串"10000"而不是整数10000

0 投票
1 回答
103 浏览

php - 如何在 Laravel 中更改加载的环境

我必须.env文件.env.local而且.env.pro我不知道如何在文件之间切换,我尝试config\app.php

但是我得到一个没有错误的空白屏幕,如何告诉框架必须加载哪个文件?

0 投票
2 回答
1565 浏览

php - 未定义类型“Dotenv\Dotenv”。intelephense(1009)

在下面的屏幕截图中,我需要有关此错误的帮助

我正在使用 PHP 7.2 和第 3 方作曲家 - “作曲家需要 vlucas/phpdotenv”v4.1.4。

我定义了基本路径,但屏幕截图中有错误

错误信息

下面是定义我的基本路径的 _env.php 代码

我将代码更改为下面的代码,但错误保持不变

0 投票
0 回答
259 浏览

laravel - Laravel Lumen 函数 env() 有时返回 null

我正在使用 Lumen 6.2.0 开发 api,它使用某些参数和令牌获取 GET 请求。当它获取参数时,它以某种方式处理它,然后使用我的 .env 文件中的密钥进行编码,然后将结果与请求提供的令牌进行比较,如果比较结果为真,则用户通过身份验证,否则他不是。所以问题有时是 env() 函数返回 null。它不会经常发生,就像 15 个请求中的 1 个一样,但这对我来说仍然是一个严重的问题。我用谷歌搜索了很多,但发现的方法很少。首先我发现 env() 函数应该只在配置文件中调用,因为 Lumen 没有配置目录和我创建的配置文件,但问题仍然存在。第二个建议是专门针对 Laravel -php artisan config:clearphp artisan config:cache但是 Lumen 没有这样的命令,尽管我运行该php artisan cache:clear命令无济于事。所以这是我的代码:

.env 文件

配置/config.php

UsersController.php

我还记录了该算法的每一行,并注意到一个有趣的事情,失败的案例[date] production.INFO:在日志行之前包含前缀,以及每个成功[date] local.INFO:的案例所以也许它以某种方式影响了 env() 函数?我也不明白为什么它有时会在我有时记录为生产APP_ENV=local

在此处输入图像描述

0 投票
1 回答
2293 浏览

php - Laravel 环境变量(没有在方法中传递默认值)在 Artisan 命令文件中不起作用

我将 Laravel 6.x 用于客户的项目,其中我在 Artisan Command 中构建了一个用于同步数据的 API。

现在客户希望配置谨慎,远离主要源代码,并且尽可能没有任何后备值。这意味着我必须在.env文件中定义配置并使用env()没有任何回退默认值的方法。

env这在 Laravel Artisan 命令类文件中必须是可能的,但是当我使用以下代码中的方法时,它无法按预期工作:

[站点根目录]\.env:

[站点根目录]\app\Console\Commands\SyncSomeData.php:

这总是staging1在控制台中打印,如果我使用它而不是给定的env方法,那么它什么也不打印:

据我所知并且可以相信 Laravel 是最安全的,必须有办法让env命令文件中没有后备值的方法工作,任何人都可以帮助实现这一点吗?

0 投票
3 回答
1201 浏览

php - 如何使用 Doctrine Fixture 加载测试数据库进行 PHP 单元测试?

我正在尝试设置一个数据库环境来测试我的 Doctrine ORM 实体类,而不更改我的真实数据库。

我遵循了Symfony 的文档,但是当我运行时,php bin/console doctrine:fixtures:load我收到了警告:

小心,数据库“图”将被清除。你想继续吗?(是/否)[否]:

尽管我已经在我的.env.test文件中设置了一个环境变量:

DATABASE_URL=mysql://testUser:testPassword@127.0.0.1/graph_test

编辑:这是整个.env.test文件:

我试图更改我的test/bootstrap.php文件,但我得到了同样的警告。

有没有办法告诉学说DATABASE_URL.env.test文件中获取价值?任何帮助将不胜感激。

PS 不需要多个测试 .env 文件。

0 投票
0 回答
644 浏览

symfony - 配置 symfony 以通过 Postfix 发送邮件

在我的 Ubuntu 服务器上安装 Postfix 并运行 Symfony 应用程序后,我试图让系统通过 Postfix 发送电子邮件。我在终端中对其进行了测试,以确保它可以正确发送并且确实可以发送,但是我对 Symfony 的配置是什么让 SwiftMailer 通过 Postfix 发送电子邮件感到困惑。

在 .env 文件中,有一个MAILER_URL属性。我在那里输入什么?我的主机名?目的地之一?完全不同的东西?帮助将不胜感激。