Laravel 5.7中的常量抛出已经定义的错误

I have created a project in Laravel 5.7 and created the file constants.php in config directory. When I tried to run php artisan config:cache, I am getting the following error. "ErrorException : Constant XXX_XXX already defined"

I have defined all the constants as define('XXXX_XXXX', 'bla bla'); All these are standard constants needed for my package.

I have done the following:

  1. I have searched the whole project and it is clear that I have never defined the same anywhere else.
  2. If I remove that constant, it shows error at the next define().
  3. If I remove the file from config directory, the artisan command gets executed successfully and I can see the config cache file in bootstrap/cache directory. but my program aborts due to error (as constants are not defined) even after I paste back the file in config directory.
  4. If I remove the config cache file from the bootstrap/cache directory, the code gets executed perfectly normal ( i have not ran the command config:cache).

I very much need this constants and the same time cache the configs to run. I am not able guess the problem.

Note : Contents of config/contants.php all are define('XXX', 'xxx'); Simply echo XYZ; wherever needed. Standard php constants.

try this way

define constant value below

if (!defined('constant')) define('constant', 'value');

I am not sure whether it is correct but the way it worked is as follows:

  1. I moved the constants.php from App/config/ to App/ (along with other models)
  2. I modified the composer.json in the "autoload" with

    "files": [ "app/constants.php" ]

  3. I ran composer dump-autoload

  4. Then I ran the php artisan config:cache

It had build the new config file in bootstrap and the code is executing normal.