PHP Fatal error: Class 'Dotenv' not found

2019-08-01 05:57发布

问题:

I've a project I try to run it but I am getting a following error:

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

I'm struggling with this error during trying to execute a php artisan start I tried to reinstall all dependencies but it didn't work. I've just tried to run some commands based on other similar problems I found in the Internet but any of them worked. I tried ie:

composer require vlucas/phpdotenv --prefer-dist

Ive got a file .env.

This is a file where error is placed:

<?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__.'/../')
);

Is it possible the error is connected with wrong configuration of a database or phpMyAdmin? Or maybe Ive got .env placed in wrong place?

I try to run this project in development.

回答1:

I guess the cwd was changed while you're running the command. make sure that composer.json, .env, "vendor/autoload.php" can be loaded from the project root.

maybe you need to run "composer dump-autoload" after the Dotenv installation,



回答2:

As c9s suggests, Check to make sure that you are loading an existing vendor/autoload.php with something like:

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