เข้าถึงการกำหนดค่าทั่วโลกใน Zend Framework 2

ฉันต้องการเข้าถึงการกำหนดค่าส่วนกลางของฉัน (config/{,*.}{global,local}.php) ที่อยู่ในไลบรารีส่วนตัวของฉัน (ในไดเร็กทอรี vendor) แม้ว่าฉันจะค้นหาในเว็บ แต่ฉันก็ไม่ประสบความสำเร็จในการบรรลุเป้าหมายนี้

ฉันรู้วิธีเข้าถึงไฟล์ปรับแต่งของโมดูล:

\MyModule\Module::getConfig()

ฉันรู้วิธีเข้าถึงการกำหนดค่าส่วนกลางจากคอนโทรลเลอร์:

$this->getServiceLocator()->get('config');

แต่จะเข้าถึงสิ่งเหล่านี้จากไฟล์ภายในไดเร็กทอรีผู้ขายได้อย่างไร ไลบรารี่ของฉันไม่ได้ขยายอะไรเลย อาจเป็นสาเหตุของปัญหา ? ฉันสามารถใช้วิธีคงที่เพื่อเข้าถึงสิ่งเหล่านี้ได้หรือไม่

ขอบคุณ.


person Aurelien Maigret    schedule 05.11.2013    source แหล่งที่มา
comment
คุณไม่สามารถเข้าถึงตัวอ่านในโรงงาน Config ผ่านเนมสเปซ Zend\\ ได้หรือไม่ แต่ผู้ขายไม่ควรแยกออกจากรูปแบบ Zend อย่างชาญฉลาดไม่ใช่หรือ? คุณไม่สามารถเพิ่ม/เขียนทับการกำหนดค่าโมดูลได้หรือไม่   -  person cptnk    schedule 05.11.2013
comment
สวัสดี ขอบคุณสำหรับความคิดเห็นของคุณ แน่นอน คุณพูดถูก ฉันไม่ควรใช้ไฟล์ zend config ในไดเร็กทอรีผู้ขายของฉัน   -  person Aurelien Maigret    schedule 05.11.2013


คำตอบ (2)


คุณสามารถรับมันผ่าน serviceManager ในตัวควบคุม:

$config = $this->getServiceLocator()->get('Config');

อย่างอื่นก็เช่นเดียวกัน คุณแค่ต้องการ service Manager สำหรับตัวอย่างใน Module.php:

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

  public function getServiceConfig()
  {
    return array(
        'factories' => array(
            'mail.transport' =>  function($sm) {
                $config = $sm->get('Config');

                 switch($config['mail']['transport']['type']){
                ..................
person Zdenek Machek    schedule 05.11.2013

วิธีง่ายๆ ในการทำเช่นนี้ ไม่เพียงแต่ในโมดูลเท่านั้นแต่ยังอยู่ที่ใดก็ได้

$config = new \Zend\Config\Config( include APPLICATION_PATH.'/config/autoload/global.php' ); 

echo $config->myconfig;

กำหนด APPLICATION_PATH ใน public/index.php

person Saurabh Chandra Patel    schedule 23.07.2015