问题标签 [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.
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
用于大多数测试,但某些测试可能略有不同?
laravel - 拼命在 Laravel 中寻找一个非空的 $_ENV
我有一个控制台任务运行:
任务运行,它可以调用不同的服务,世界上一切都很好。但是,我有一个特定任务调用未加载配置的不同类。
出于特定原因,我希望阅读我的配置$_ENV
(它允许我进行一些键值迭代并专门基于模式处理一些键)。但是这里 $_ENV 仍然是空的,我可以通过config()
or读取配置env()
。
这绝不会通过 HTTP 调用或某些命令行调用发生(我无法理解调度程序调用和命令行调用的区别)。
拉拉维尔 5.6
编辑:这个问题保留在这里,因为我没有找到现有的相关问题为什么我的 $_ENV 是空的?
php - 在项目中调用 .env 文件的正确方法
我想看看.env
在我的项目中调用文件的正确方法是什么?我正在与之合作的一位开发人员只是告诉我一切都已设置好,我所需要的只是.env
在根目录中创建一个文件。
以下是函数的调用方式:
我的.env
文件设置如下(我使用以下凭据创建了本地数据库):
这是正确的方法吗?我需要在.env
文件中的名称、用户、密码和主机周围加上引号吗?我在 localhost 环境中执行所有这些操作。
php - 从 Laravel 中的 .env 返回数据类型
我想根据我的环境拥有动态播种机。(例如,在测试中,我只希望播种 100 行,而本地则为 10'000)。
我在配置中创建了 seeder.php,它从 .env 文件中调用值。
当我在播种机中使用配置时,它会在 .env 中的一个值上返回一个字符串,该值应该是一个整数。例如:
.env.local:
配置\播种机.php:
用户播种机
以上无法正常工作,似乎config('user_count')
返回一个字符串"10000"
而不是整数10000
php - 如何在 Laravel 中更改加载的环境
我必须.env
文件.env.local
而且.env.pro
我不知道如何在文件之间切换,我尝试config\app.php
从
至
但是我得到一个没有错误的空白屏幕,如何告诉框架必须加载哪个文件?
php - 未定义类型“Dotenv\Dotenv”。intelephense(1009)
在下面的屏幕截图中,我需要有关此错误的帮助
我正在使用 PHP 7.2 和第 3 方作曲家 - “作曲家需要 vlucas/phpdotenv”v4.1.4。
我定义了基本路径,但屏幕截图中有错误
下面是定义我的基本路径的 _env.php 代码
我将代码更改为下面的代码,但错误保持不变
laravel - Laravel Lumen 函数 env() 有时返回 null
我正在使用 Lumen 6.2.0 开发 api,它使用某些参数和令牌获取 GET 请求。当它获取参数时,它以某种方式处理它,然后使用我的 .env 文件中的密钥进行编码,然后将结果与请求提供的令牌进行比较,如果比较结果为真,则用户通过身份验证,否则他不是。所以问题有时是 env() 函数返回 null。它不会经常发生,就像 15 个请求中的 1 个一样,但这对我来说仍然是一个严重的问题。我用谷歌搜索了很多,但发现的方法很少。首先我发现 env() 函数应该只在配置文件中调用,因为 Lumen 没有配置目录和我创建的配置文件,但问题仍然存在。第二个建议是专门针对 Laravel -php artisan config:clear
和php artisan config:cache
但是 Lumen 没有这样的命令,尽管我运行该php artisan cache:clear
命令无济于事。所以这是我的代码:
.env 文件
配置/config.php
和UsersController.php
我还记录了该算法的每一行,并注意到一个有趣的事情,失败的案例[date] production.INFO:
在日志行之前包含前缀,以及每个成功[date] local.INFO:
的案例所以也许它以某种方式影响了 env() 函数?我也不明白为什么它有时会在我有时记录为生产APP_ENV=local
php - Laravel 环境变量(没有在方法中传递默认值)在 Artisan 命令文件中不起作用
我将 Laravel 6.x 用于客户的项目,其中我在 Artisan Command 中构建了一个用于同步数据的 API。
现在客户希望配置谨慎,远离主要源代码,并且尽可能没有任何后备值。这意味着我必须在.env
文件中定义配置并使用env()
没有任何回退默认值的方法。
env
这在 Laravel Artisan 命令类文件中必须是可能的,但是当我使用以下代码中的方法时,它无法按预期工作:
[站点根目录]\.env:
[站点根目录]\app\Console\Commands\SyncSomeData.php:
这总是staging1
在控制台中打印,如果我使用它而不是给定的env
方法,那么它什么也不打印:
据我所知并且可以相信 Laravel 是最安全的,必须有办法让env
命令文件中没有后备值的方法工作,任何人都可以帮助实现这一点吗?
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 文件。
symfony - 配置 symfony 以通过 Postfix 发送邮件
在我的 Ubuntu 服务器上安装 Postfix 并运行 Symfony 应用程序后,我试图让系统通过 Postfix 发送电子邮件。我在终端中对其进行了测试,以确保它可以正确发送并且确实可以发送,但是我对 Symfony 的配置是什么让 SwiftMailer 通过 Postfix 发送电子邮件感到困惑。
在 .env 文件中,有一个MAILER_URL
属性。我在那里输入什么?我的主机名?目的地之一?完全不同的东西?帮助将不胜感激。