在 zf2 中放置数据数组的位置

Where to place a data array in zf2

我想在我的zf2项目中创建如下静态数据数组,这样就可以根据部门代码完成路由和其他方法,然后查看不同模块中的helpers和form select元素查找用户界面的部门标题。

    $deptList = array(
        '01'  => 'Human Resources',
        '02'  => 'Sales',
        '03'  => 'Marketing',
        '04'  => 'Accounting',  
           // ...           
    );

在zf2目录结构中,我应该把这个放在哪里?是否需要它自己的 class?

此外,将此数据记录在数据库 table 中可能比 hard-coding 更方便。但我质疑这是否会影响性能。

因为没有像 ZF1 中那样创建服务并在需要的地方适当注入它的注册表单例。然后,您可以根据文件系统中的自动加载器配置放置它。同样在 class 里面,你可以做任何你喜欢的事情来构建数组,例如为此使用数据库。

不过,如果它是静态信息,您也可以使用您的配置 - 例如像这样:

Module.php

class Module
{
    public function getConfig()
    {
        return include __DIR__ . '/config/module.config.php';
    }
}

module.config.php

return [
    'deptList' => [
        '01' => 'Human Resources',
        '02' => 'Sales',
        '03' => 'Marketing',
        '04' => 'Accounting',
        // ...           
    ],
];

MyController.php

class MyController extends \Zend\Mvc\Controller\AbstractActionController
{

    public function myAction()
    {
        $config   = $this->getServiceLocator()->get('config');
        $deptList = $config['deptList'];
    }

}