在ZF2中,我必须声明公共数组(国家,城市,密码等...)

时间:2013-07-10 06:11:48

标签: arrays zend-framework zend-framework2

请告诉我在ZF2中,我必须申报常见数组(国家,城市,密码等)

autoload / local.php autoload / global.php autoload / commonarrays.global.php

我需要从我的所有模块Model类和Controller类中访问这些数组。

FYI

我使用ServiceManager autoload / local.php 中声明了数组我可以访问Controller类中的公共数组,但我需要访问}中的公共数组

E:\...\ZendSkeletonApplication\module\Member\src\Member\Form\SignupForm.php

显示countries的选择框。我无法在 SignupForm.php 中创建ServiceManager的实例。

我现在该做什么?

2 个答案:

答案 0 :(得分:1)

为这些创建类并使用依赖注入注入控制器/模型/视图助手是很有意义的。您可以在Module.php中注入控制器并查看帮助程序

将数组包装在类中的原因:目前您可能拥有硬编码数组,但如果将来将这些数组存储在文件/数据库/ memcached中,该怎么办。

关于DI的这篇文章将非常有用:

http://www.zfdaily.com/2012/07/getting-dependencies-into-zf2-controllers/

答案 1 :(得分:0)

哇!我做到了,......

我做了这些改动:

在我的 module.php

方法

    public function getServiceConfig()
    {
        return array(
            'factories' => array(
            // some code goes here //
            // some code goes here //

                /**       I added these lines         **/
                'Member\Form\SignupForm' =>  function($sm) {
                    $SignupForm = new SignupForm($sm);
                    return $SignupForm;
                },
                /**      I added these lines         **/
            ),
        );
    }

\ module \ Member \ src \ Member \ Form \ SignupForm.php

    class SignupForm extends Form 
    {
    /**              I added these lines         **/
        protected $serviceManager;

        public function __construct($serviceManager)
        {


            $this->serviceManager = $serviceManager;

            print_r($this->serviceManager->get('Config'));  
        /**              I added these lines         **/    
            // some code goes here //
        }   
            // some code goes here //

    }

\ module \ Member \ src \ Member \ Controller \ MemberController.php

    $form = $this->getServiceLocator()->get('Member\Form\SignupForm');