问题标签 [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 投票
1 回答
573 浏览

php - 如何在类中使用 dotenv 变量?

我几天前才开始学习PHP,如果这个问题是新手,请原谅我。我的 CRAWLER_URI 声明有什么问题?在env()方法之外不起作用,我不知道为什么。

0 投票
2 回答
5860 浏览

php - 致命错误:在第 24 行的 .../Bootstrap/DetectEnvironment.php 中找不到类 'Dotenv\Dotenv'

不知道为什么我会收到此消息:

致命错误:未捕获的 Symfony\Component\Debug\Exception\FatalThrowableError: Class 'Dotenv\Dotenv' not found in /home/vagrant/devbox/devbox.local/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/DetectEnvironment。第 24 行的 php

下面是DetectEnvironment.php代码:

在我重新启动计算机和服务器之前,我的项目一直正常工作。每当我访问该站点或运行 composer 或 artisan 命令时,我都会收到上述错误。

我尝试了各种我发现但没有奏效的解决方案。这包括:

  • 专门将 vlucas/phpdotenv 添加到作曲家文件中(它已经存在于供应商文件结构中,但添加它是为了确保)
  • 运行 composer update 和 composer dumpautoload
  • 创建一个新的 .env 文件

创建一个新的 laravel 项目是可行的,但我真的不想这样做(对此必须有一个简单的解释/修复)。

中列出的类似问题,但都没有适合我的答案:

我正在使用最新的 Laravel 版本并在 Homestead 上运行它。

非常感谢任何指导!

0 投票
1 回答
10919 浏览

laravel-5 - 使用多个 env 文件

我想知道 Laravel 中是否有一种方法可以指定一组要加载的 env 文件。我的确切问题是我想为我的所有资源添加后缀之类的.js东西.css。理想情况下,我会有一个像发布日期这样的后缀,因为这些文件可以缓存在同一个版本中,但我希望缓存在下一个版本中失效。但是,如果可能,我想避免读取、修改和保存.env文件,而是更喜欢创建一个新文件,例如.env.rdate通过脚本生成的文件,例如

或类似的东西。这是可能的还是我必须改为读取/更新/写入 .env 文件?

0 投票
14 回答
78312 浏览

php - Laravel 5 - env() 总是返回 null

我试图找出为什么我的env()助手总是返回null。这会导致麻烦,特别是在app.php文件中,env()默认情况下广泛使用助手。也许任何神秘的服务器设置?

我的环境文件

编辑 - 我试过以下

当然,我正在使用env这样的助手:env('APP_ENV')

但仍然没有成功。奇怪的是,该$_ENVphp 变量包含文件中的每个变量.env

0 投票
3 回答
5065 浏览

php - Laravel PHPUnit 加载 .env.testing 文件

我在让 Laravel 为我的测试用例加载正确的 .env 文件时遇到了一些问题。我正在使用 PHPUnit,并在 phpunit.xml 中设置了以下 var:

在我的 .env.testing 文件中,我有:

我在 config/database.php 下建立了他的连接:

它只是没有加载 .env.testing 文件。如果我在我的 TestCase.php 中这样做:

我仍然从我的 .env 文件中获得“发展”

我也尝试过使用:

就像这里的线程中建议的那样

有谁知道可能出了什么问题?

0 投票
1 回答
1305 浏览

php - Laravel 5 多个 bootstrap/cache/config.php 文件

假设我有一个用于 500 多个客户端的代码库,基于负载平衡的 Web 服务器。每个客户端都有自己的数据库,因此有自己的一组凭据。

这里的简单方法是为每个客户端凭据和环境设置使用不同的 .env 文件(顺便说一句,这很好用),但出于优化原因,我想运行“artisan cache:config”方法。这会将所有配置文件编译到 /bootstrap/cache 中的单个“config.php”文件中。

现在,对于很多客户来说,这不是很实用。我可以告诉 Laravel WHERE 在哪里查找缓存的配置文件吗?不改变核心代码?

就像从虚拟主机“CONFIG_PATH”和(伪代码)定义一个环境变量

或者是拥有很多目录的唯一可能性,每个目录都有它们的“Bootstrap/cache”文件夹,以及指向共享代码库的符号链接(在我看来,这是一条相当繁琐的路径)

提前致谢。

0 投票
1 回答
521 浏览

laravel - 如何从 `index.php` 中的 `.env` 访问设置

我正在为 Laravel 项目创建部署配置。我的托管public/文件夹必须移动到另一个地方。显然,从那以后,我需要将路径更改为autoload.phpand app.phpin index.php

但是,我想添加并使用一个参数来告诉这些文件所在的位置。像这样的东西:

我认为,此类参数最合适的位置是 .env 文件。但是,我有一个错误:

0 投票
2 回答
1959 浏览

laravel - 我可以使用 Maatwebsite 的 Laravel-Excel 将 startRow 设置为不同工作表的不同值吗?

我正在使用Maatwebsite 的 Laravel-Excel导入包含两张工作表的 Excel 文件。该文件是由另一个系统生成的;我无法改变它的制作方式。

在第一张纸上,第一行是列标题。这工作正常。

第一张表在第一行有标题

...但是第二张纸有两行不需要的文本,然后是第三行的标题。

第二张表在第三行有标题

我可以设置config(['excel.import.startRow' => 3])在第三行开始导入,但这意味着我错过了第一张表中的前两行有用数据。

有什么办法可以让excel.import.startRow第一张纸设置为 1,而excel.import.startRow另一张纸设置为 3?

0 投票
1 回答
600 浏览

php - Laravel:通过发布第三方包来更新 .env 文件

我有一个想要包装到 Laravel 包中的库。

我的库使用两个配置:config.php一些非敏感设置的公共.env配置和敏感凭据的私有配置。

我想vendor:publish为最终用户配置我的配置。对公众来说似乎很好,config.php但如何以.envLaravel 友好的方式发布我的?我没有找到任何方法来做到这一点vendor:publish

0 投票
1 回答
504 浏览

php - PHP Dotenv 导致 wordpress 配置运行两次

我有一个相对复杂的 laravel 项目,在其中我有一个 wordpress 安装,用于在与 composer 一起安装的一侧安装博客。

在我wp-config.php的配置目录中,我使用了一个包含文件application.php(用于组织目的)。我在文件中有各种define('XXX', 'config stuff');类似的案例。当 'config stuff' 被硬编码时,该网站可以完美运行,但最近我试图使用 composer 安装的 dotenv 从我的 .env 中提取值 getenv()

当我var_dump我的getenv('example_env_constant')时候,它给了我正确的值,绝对没问题。所以我开始在我的 application.php 文件中设置这些。

但是现在当我加载网站时,我得到了大量

每人一份define('XXX', value);

还有一个

在测试中,我发现我的wp-config.php文件正在运行一次。但不知何故,我application.php的运行两次。第一次运行来自我的包含调用,wp-config.php因为它应该是。触发错误的第二次运行发生在wp-settings.php第 326 行

我不知道这是怎么回事。

如果我从中删除 dotenv 代码application.php并将其直接放入我wp-config.php的行为中,则行为完全相同,wp-config.php运行一次并application.php运行两次。

现在,如果我删除application.php并将所有代码放入wp-config.php传统的 wp 配置中。然后我再次遇到完全相同的问题,它引用了已删除的文件......这当然表明此时存在缓存问题,尽管我不认为缓存是原始问题的原因。使用 wp cli 运行缓存刷新不起作用,因为它实际上设法application.php在刷新时遇到相同的错误。没关系,无论如何缓存首先被禁用。这不是浏览器缓存问题,因为新的隐身 chrome 实例和硬刷新没有区别。

这是一篇长篇文章,对此感到抱歉,我希望我足够清楚。我很困惑这是如何发生的,任何调试帮助或提示都会很棒。也许我错过了一些非常明显的事情,因为似乎将 dotenv 用于我的 wp 配置以我以前从未见过的方式彻底破坏了一切。最坏的情况是最坏的情况,我将回到硬编码 wp-config 文件

更新:

我错误地删除了 application.php 文件而不是停止相关的错误。它停止了需要的错误,但我得到了其他错误。如果我只是删除 application.php 的内容,那么我没有区别。

大错特错,如果有人只是有任何调试建议,将不胜感激

文件:

  • 公共/帮助建议/ wp-config.php

  • 配置/应用程序.php

  • wordpress 安装在 public/help-advice/wp

  • 非作曲家生成的 wp 文件位于 public/help-advice/app 或 public/help-advice

如果您不能使用 pastebin,请粘贴代码:

这是 config.php

这是application.php