gpt4 book ai didi

php - 如何从 Nette 中的 NEON 文件中获取值?

转载 作者:可可西里 更新时间:2023-11-01 13:10:58 26 4
gpt4 key购买 nike

我有一个基于 Nette 框架的小应用程序。

我已经创建了 constants.neon 文件并将其添加到容器中。将有一些数据应该可以从演示者、模型、表格等处获得。

如何访问 constants.neon 中的值?

我知道有一个方法 (new\Nette\Neon\Neon())->decode([NEON_FILE_PATH]) 但我不认为这是正确的 方式。我怀疑在 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;
}

然后在配置 (Neon) 中将您的模型注册为服务:

services:
- App\XXX\MyModel(%constants%)

当您将该模型注入(inject)您的演示者时:

class DefaultPresenter extends BasePresenter
{
/** @var App\XXX\MyModel @inject */
public $myModel;

它会在实例化时自动接收您的“常量”。

关于php - 如何从 Nette 中的 NEON 文件中获取值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37926060/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com