通常我们直接通过config文件return数据的方式来配置常量。但是有时候用了第三方库是用常量定义的,这时候我们就需要通过define定义常量。但是如果这样的话,使用了route:cache,config:cache时,就会报常量已经存在的bug。
Constant xxx already exists
那么应该怎么通过define定义常量才是正确的方式呢?参考下面:
<?php
/*
* This file is part of PHP CS Fixer.
* (c) Fabien Potencier <fabien@symfony.com>
* Dariusz Rumiński <dariusz.ruminski@gmail.com>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
if (!defined('NMG_OAUTH2_REVOKE_URI')) {
define('NMG_OAUTH2_REVOKE_URI', config('nmg_config.NMG_PLUS_SERVER_HOST') . '/OAuth2/revoke');
}
if (!defined('NMG_OAUTH2_TOKEN_URI')) {
define('NMG_OAUTH2_TOKEN_URI', config('nmg_config.NMG_PLUS_SERVER_HOST') . '/OAuth2/token');
}
if (!defined('NMG_OAUTH2_AUTH_URL')) {
define('NMG_OAUTH2_AUTH_URL', config('nmg_config.NMG_PLUS_SERVER_HOST') . '/auth');
}
if (!defined('NMG_OAUTH2_ISSUER')) {
define('NMG_OAUTH2_ISSUER', config('nmg_config.NMG_PLUS_SERVER_HOST'));
}
return [
'NMG_PLUS_SERVER_HOST' => env('NMGONE_SITE'),
'NMG_ID' => env('NMGONE_CLIENT_ID'),
'NMG_SECRET' => env('NMGONE_CLIENT_SECRET'),
'NMG_OAUTH2_SIGNUP_URL'=> env('NMGONE_SITE') . '/signup',
'NMG_URI' => env('APP_URL') . 'login/nmgCallBack',
'DES_KEY' => 'nmg2018',
'NMGONE_API' => env('NMGONE_SITE') . '/Api/Index/',
'API_SECURE_KEY' => env('NMGONE_API_SECURE_KEY'),
];
define 不能直接调用env(),因为它是后执行的,cache中是无法调用到env的。所以要用config()来读取。
网友评论