PHP 致命错误:在中找不到类“Dotenv”

Posted

技术标签:

【中文标题】PHP 致命错误:在中找不到类“Dotenv”【英文标题】:PHP Fatal error: Class 'Dotenv' not found in 【发布时间】:2016-09-17 16:07:22 【问题描述】:

我有一个项目,我尝试运行它,但出现以下错误:

php Fatal error:  Class 'Dotenv' not found in `/home/maras/Documents/eCodile/debtorcare/server/bootstrap/app.php on line 5`

在尝试执行php artisan start 时遇到此错误,我尝试重新安装所有依赖项,但没有成功。 我刚刚尝试根据我在互联网上发现的其他类似问题运行一些命令,但其中任何一个都有效。我试过了:

composer require vlucas/phpdotenv --prefer-dist

我有一个文件.env

这是一个放置错误的文件:

<?php

require_once __DIR__.'/../vendor/autoload.php';

Dotenv::makeMutable();
Dotenv::load(__DIR__.'/../');
Dotenv::makeImmutable();

/*
|--------------------------------------------------------------------------
| Create The Application
|--------------------------------------------------------------------------
|
| Here we will load the environment and create the application instance
| that serves as the central piece of this framework. We'll use this
| application as an "IoC" container and router for this framework.
|
*/

$app = new Laravel\Lumen\Application(
    realpath(__DIR__.'/../')
);

这个错误是否可能与数据库或 phpMyAdmin 的错误配置有关?或者也许我把 .env 放在了错误的地方?

我尝试在开发中运行这个项目。

【问题讨论】:

【参考方案1】:

我猜 cwd 在您运行命令时已更改。确保 composer.json, .env, "vendor/autoload.php" 可以从项目根目录加载。

也许你需要在 Dotenv 安装后运行“composer dump-autoload”,

【讨论】:

我可以通过什么方式检查 CWD? 我之前也尝试过'composer dump-autoload',但没有帮助【参考方案2】:

正如 c9s 建议的那样,检查以确保您正在加载现有的 vendor/autoload.php,其中包含以下内容:

$vendor_audoload = __DIR__.'/../vendor/autoload.php';
print $vendor_audoload;
if(file_exists($vendor_audoload))
    print " Exists!";
 else 
    print " Does not exist!";

【讨论】:

以上是关于PHP 致命错误:在中找不到类“Dotenv”的主要内容,如果未能解决你的问题,请参考以下文章

PHP 致命错误:在中找不到类“RemoteWebElement”

Memcache 和 php:致命错误:在中找不到类“Memcache”

致命错误:在 ConnectionFactory.php 中找不到类 ConnectionWrapper

Laravel 4:致命错误:在 autoload.php 中找不到类 'Patchwork\Utf8\Bootup'

Laravel - PHP 致命错误:在迁移中找不到类“CreateMatchesTable”:刷新

致命错误:在my.php第10行中找不到类'Hours Minutes Seconds'