使用注册器文件合并配置数组

问题描述 投票:0回答:1

我的主要 CodeIgniter 4 安装包含一个名为 Menu 的配置文件,其中有一个名为 $menu 的设置,其中包含一个菜单结构数组。我创建了一个可重用的模块,具有相同的菜单配置文件和该功能的菜单选项。我正在尝试合并这两个数组并将它们分配给注册器文件中的父 $menu 变量。

我尝试通过调用配置文件属性并使用 merge_array() 来执行此操作,但收到无限循环错误。有没有人有任何建议或替代方法来实现这一目标?

这是我正在使用的代码:

<?php

namespace Developer\Config;

use Developer\Collectors\Developer;

class Registrar
{
    public static function Menu(): array
    {
        $app_config = config('Menu');
        $sub_config = new Developer\Config\Menu();

        $menu = array_merge($app_config->menu, $sub_config->menu);
        
        return [
            'menu' => $menu,
        ];
    }

    public static function Toolbar(): array
    {
        return [
            'collectors' => [
                Developer::class,
            ],
        ];
    }
}

以下是我收到的错误:

Xdebug has detected a possible infinite loop, and aborted your script with a stack depth of '256' frames
php codeigniter-4
1个回答
0
投票

Xdebug 是对的...您确实是在循环中从

Menu()
内部调用您的
Menu()
方法。

您可以像这样在其内部初始化它

$sub_config = new Developer\Config\Menu();

© www.soinside.com 2019 - 2024. All rights reserved.