在Laravel中传递许多数组和长变量的最佳实践

时间:2016-03-18 17:20:00

标签: php laravel

请在此控制器中考虑此方法:

 public function showPage() {

    $settings = [
        'show_box' => 'Show box',
        'coolstuff'   => 'Some text',
        'ss_text'   => 'Anotehr text',
        'blur_haha'   => 'Nice text',
        'nice_s'   => 'Nice hahahaha',
    ];

    $text = [
        'hey' => 'Show box',
        'nice_text'   => 'Some text',
        'yes_text'   => 'Anotehr text',
        'no_hahaaha'   => 'Nice text',
        'cool_text'   => 'Nice hahahaha',
    ];

    return view('page',  compact('settings');
}

如您所见,该方法主要包含数组的变量声明。现在让我们说像这样的10个变量。

这样做的最佳做法是什么?这没有什么不妥,但它根本不干净。它非常拥挤。

我想知道是否可以在其他地方声明它们并将变量传递给控制器​​。

谢谢。

1 个答案:

答案 0 :(得分:1)

如果您的数组和变量是静态的,最好不要混淆控制器(或任何PHP类)。

我会定义一个配置文件。例如说config/settings.php

// config/settings.php
return [
    'show_box' => 'Show box',
    'coolstuff'   => 'Some text',
    'ss_text'   => 'Anotehr text',
    'blur_haha'   => 'Nice text',
    'nice_s'   => 'Nice hahahaha',
];

现在在你的控制器中你可以这样做:

return view('page', ['settings' => Config::get('settings')];

如果您的控制器需要先检查,添加或修改几个设置:

$settings = array_merge(Config::get('settings'), [
    "new" => "some text",
    "show_box" => "change this value"
]);
return view('page', ['settings' => $settings]);