Yii2 参数在公共目录中的本地配置文件中访问
Yii2 params access within local config file in common directory
我正在使用 Yii2
高级模板,
我想访问 main-local.php
文件中的 params.php
,
我这样称呼:
主要-local.php:
'mailer' => [
'class' => 'myClass',
'apikey' => \Yii::$app->params['mandrill_api_key'],
'viewPath' => '@common/mail',
],
并且我已将此 mandrill_api_key
存储在 params.php
中
params.php:
<?php
return [
'adminEmail' => 'admin@example.com',
'supportEmail' => 'support@example.com',
'user.passwordResetTokenExpire' => 3600,
'mandrill_api_key' => 'mykey'
];
我收到这个错误:
Notice: Trying to get property of non-object in C:\xampp\htdocs\myproject\common\config\main-local.php on line 25
我应该如何访问这些参数?
在实例化应用程序之前读取配置文件,如 request lifecycle:
中所述
- A user makes a request to the entry script web/index.php.
- The entry script loads the application configuration and creates an application instance to handle the request.
- The application resolves the requested route with the help of the request application component.
- ...
因此 \Yii::$app
尚不存在,因此出现错误。我建议将您的 api_key 定义移动到 main-local.php
配置,这样就不会混淆它的设置位置:
'mailer' => [
'class' => 'myClass',
'apikey' => 'actual api key',
'viewPath' => '@common/mail',
],
或者,您可以使用 Yii2 的 dependancy injection container 在应用程序的入口脚本中设置 apikey
:
...
$app = new yii\web\Application($config);
\Yii::$container->set('\fully\qualified\myClass', [
'apikey' => \Yii::$app->params['mandrill_api_key'],
]);
$app->run();
参数是配置的一部分,您不能在配置中调用它。
你可以在你的 class 中使用它,这是 handel 的最佳方式:
我的班级:
class myClass extends ... {
public $apikey;
public function __construct(){
$this->apikey = \Yii::$app->params['mandrill_api_key'];
}
}
你可以做到
$params['mandrill_api_key']
你不需要使用
\Yii::$app->params['mandrill_api_key']
我正在使用 Yii2
高级模板,
我想访问 main-local.php
文件中的 params.php
,
我这样称呼:
主要-local.php:
'mailer' => [
'class' => 'myClass',
'apikey' => \Yii::$app->params['mandrill_api_key'],
'viewPath' => '@common/mail',
],
并且我已将此 mandrill_api_key
存储在 params.php
params.php:
<?php
return [
'adminEmail' => 'admin@example.com',
'supportEmail' => 'support@example.com',
'user.passwordResetTokenExpire' => 3600,
'mandrill_api_key' => 'mykey'
];
我收到这个错误:
Notice: Trying to get property of non-object in C:\xampp\htdocs\myproject\common\config\main-local.php on line 25
我应该如何访问这些参数?
在实例化应用程序之前读取配置文件,如 request lifecycle:
中所述
- A user makes a request to the entry script web/index.php.
- The entry script loads the application configuration and creates an application instance to handle the request.
- The application resolves the requested route with the help of the request application component.
- ...
因此 \Yii::$app
尚不存在,因此出现错误。我建议将您的 api_key 定义移动到 main-local.php
配置,这样就不会混淆它的设置位置:
'mailer' => [
'class' => 'myClass',
'apikey' => 'actual api key',
'viewPath' => '@common/mail',
],
或者,您可以使用 Yii2 的 dependancy injection container 在应用程序的入口脚本中设置 apikey
:
...
$app = new yii\web\Application($config);
\Yii::$container->set('\fully\qualified\myClass', [
'apikey' => \Yii::$app->params['mandrill_api_key'],
]);
$app->run();
参数是配置的一部分,您不能在配置中调用它。
你可以在你的 class 中使用它,这是 handel 的最佳方式:
我的班级:
class myClass extends ... {
public $apikey;
public function __construct(){
$this->apikey = \Yii::$app->params['mandrill_api_key'];
}
}
你可以做到
$params['mandrill_api_key']
你不需要使用
\Yii::$app->params['mandrill_api_key']