[英]How to get values from neon file in Nette?
我有基于Nette框架的小应用程序。
我已经创建了constants.neon
文件并将其添加到容器中。 将有一些数据可以从演示者,模型,表格等获得。
如何访问constants.neon
值?
我知道有一种方法(new \\Nette\\Neon\\Neon())->decode([NEON_FILE_PATH])
但我不认为这是right way
。 我怀疑在bootstrap.php
使用addConfig(...)
后,这些配置文件中的所有数据都应该可以在整个系统中使用。
<?php
// bootstrap.php
require __DIR__ . '/../vendor/autoload.php';
$configurator = new Nette\Configurator;
$configurator->setDebugMode(true); // enable for your remote IP
$configurator->enableDebugger(__DIR__ . '/../log');
$configurator->setTempDirectory(__DIR__ . '/../temp');
$configurator->createRobotLoader()
->addDirectory(__DIR__)
->addDirectory(__DIR__ . '/../vendor/phpoffice/phpexcel')
->register();
$configurator->addConfig(__DIR__ . '/config/config.neon');
$configurator->addConfig(__DIR__ . '/config/config.local.neon');
$configurator->addConfig(__DIR__ . '/config/constants.neon');
$container = $configurator->createContainer();
return $container;
我的constants.neon
文件:
constants:
DP_OPT = 'DP'
PP_OPT = 'PP'
DV_OPT = 'DV'
ZM_OPT = 'ZM'
TP_OPT = 'TP'
谢谢
更新#1
弄清楚我使用了错误的.neon
文件格式。
constants:
DP_OPT: DP
PP_OPT: PP
DV_OPT: DV
ZM_OPT: ZM
TP_OPT: TP
要完成Jan的答案,以下是将配置参数传递给模型的方法。
使您的模型类期望它作为构造函数参数:
namespace App\XXX;
class MyModel
{
/** @var array */
private $constants;
public function __construct(array $constants)
{
$this->constants = $constants;
}
然后在config(Neon)中将模型注册为服务:
services:
- App\XXX\MyModel(%constants%)
将该模型注入演示者时:
class DefaultPresenter extends BasePresenter
{
/** @var App\XXX\MyModel @inject */
public $myModel;
它会在实时化时自动收到你的'常数'。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.