コード例 #1
0
ファイル: ModelCache.php プロジェクト: ahyswang/eva-engine
 public function __invoke(array $config = array())
 {
     $di = new Di();
     $diConfig = array('definition' => array('class' => array('Zend\\Cache\\Storage\\Adapter' => array('instantiator' => array('Eva\\Cache\\StorageFactory', 'factory')), 'Eva\\Cache\\StorageFactory' => array('methods' => array('factory' => array('cfg' => array('required' => true, 'type' => false)))))), 'instance' => array('Eva\\Cache\\StorageFactory' => array('parameters' => array('cfg' => array('adapter' => array('name' => 'filesystem', 'options' => array('cacheDir' => EVA_ROOT_PATH . '/data/cache/model/')), 'plugins' => array('serializer'))))));
     $globalConfig = $this->serviceLocator->get('Configuration');
     $globalConfig = isset($globalConfig['cache']['model']) ? $globalConfig['cache']['model'] : array();
     $diConfig = Config::mergeArray($diConfig, $globalConfig, $config);
     $di->configure(new DiConfig($diConfig));
     return $di->get('Eva\\Cache\\StorageFactory');
 }
コード例 #2
0
ファイル: Mail.php プロジェクト: ahyswang/eva-engine
 public function __construct(array $config = array())
 {
     $defaultConfig = array('transports' => array('smtp' => false, 'sendmail' => false, 'file' => true), 'message' => array(), 'di' => array('definition' => array('class' => array('Zend\\View\\Resolver\\AggregateResolver' => array('attach' => array('resolver' => array('required' => true, 'type' => 'Zend\\View\\Resolver\\TemplatePathStack'))))), 'instance' => array('Zend\\View\\Resolver\\TemplatePathStack' => array('parameters' => array('paths' => array(Message::VIEW_PATH_NAME => EVA_ROOT_PATH . '/data/'))), 'Zend\\View\\Resolver\\AggregateResolver' => array('injections' => array('Zend\\View\\Resolver\\TemplatePathStack')), 'Zend\\View\\Renderer\\PhpRenderer' => array('parameters' => array('resolver' => 'Zend\\View\\Resolver\\AggregateResolver')), 'Eva\\Mail\\Message' => array('parameters' => array('headers' => 'Zend\\Mail\\Headers', 'view' => 'Zend\\View\\Renderer\\PhpRenderer', 'viewModel' => 'Zend\\View\\Model\\ViewModel', 'encoding' => 'UTF-8')), 'Zend\\Mail\\Transport\\FileOptions' => array('parameters' => array('path' => EVA_ROOT_PATH . '/data/mail')), 'Zend\\Mail\\Transport\\File' => array('injections' => array('Zend\\Mail\\Transport\\FileOptions')), 'Zend\\Mail\\Transport\\Smtp' => array('injections' => array('Zend\\Mail\\Transport\\SmtpOptions')))));
     $globalConfig = Api::_()->getConfig();
     if (isset($globalConfig['mail'])) {
         $config = Config::mergeArray($defaultConfig, $globalConfig['mail'], $config);
     } else {
         $config = Config::mergeArray($defaultConfig['mail'], $config);
     }
     $diConfig = array();
     if ($config['di']) {
         $diConfig = $config['di'];
     }
     $di = new Di();
     $di->configure(new DiConfig($diConfig));
     $this->message = $di->get('Eva\\Mail\\Message');
     $allowTransports = $this->transportsClasses;
     $transportType = '';
     if (is_string($config['transports'])) {
         $transportType = $config['transports'];
         $transportClass = isset($allowTransports[$transportType]) ? $allowTransports[$transportType] : null;
         if (!$transportClass) {
             throw new Exception\InvalidArgumentException(sprintf('Unknow transport type %s in method %s"', $transportType, __METHOD__));
         }
         $transport = $di->get($transportClass);
         //\Zend\Di\Display\Console::export($di);
         $this->transports[$transportType] = $transport;
     } elseif (is_array($config['transports'])) {
         $transportTypes = $config['transports'];
         foreach ($transportTypes as $transportType => $value) {
             if (!$value) {
                 continue;
             }
             $transportClass = isset($allowTransports[$transportType]) ? $allowTransports[$transportType] : null;
             if (!$transportClass) {
                 throw new Exception\InvalidArgumentException(sprintf('Unknow transport type %s in method %s"', $transportType, __METHOD__));
             }
             $this->transports[$transportType] = $di->get($transportClass);
         }
     } else {
         throw new Exception\InvalidArgumentException(sprintf('%s expects a string or array as transport config, "%s" received', __METHOD__, gettype($config['transports'])));
     }
 }