Ejemplo n.º 1
0
 /**
  * Retrieve translate object
  *
  * @return IfwPsn_Vendor_Zend_Translate
  * @throws IfwPsn_Vendor_Zend_Application_Resource_Exception if registry key was used
  *          already but is no instance of IfwPsn_Vendor_Zend_Translate
  */
 public function getTranslate()
 {
     if (null === $this->_translate) {
         $options = $this->getOptions();
         if (!isset($options['content']) && !isset($options['data'])) {
             require_once IFW_PSN_LIB_ROOT . 'IfwPsn/Vendor/Zend/Application/Resource/Exception.php';
             throw new IfwPsn_Vendor_Zend_Application_Resource_Exception('No translation source data provided.');
         } else {
             if (array_key_exists('content', $options) && array_key_exists('data', $options)) {
                 require_once IFW_PSN_LIB_ROOT . 'IfwPsn/Vendor/Zend/Application/Resource/Exception.php';
                 throw new IfwPsn_Vendor_Zend_Application_Resource_Exception('Conflict on translation source data: choose only one key between content and data.');
             }
         }
         if (empty($options['adapter'])) {
             $options['adapter'] = IfwPsn_Vendor_Zend_Translate::AN_ARRAY;
         }
         if (!empty($options['data'])) {
             $options['content'] = $options['data'];
             unset($options['data']);
         }
         if (isset($options['log'])) {
             if (is_array($options['log'])) {
                 $log = IfwPsn_Vendor_Zend_Log::factory($options['log']);
             }
             if ($log instanceof IfwPsn_Vendor_Zend_Log) {
                 $options['log'] = $log;
             }
         }
         if (isset($options['options'])) {
             foreach ($options['options'] as $key => $value) {
                 $options[$key] = $value;
             }
         }
         if (!empty($options['cache']) && is_string($options['cache'])) {
             $bootstrap = $this->getBootstrap();
             if ($bootstrap instanceof IfwPsn_Vendor_Zend_Application_Bootstrap_ResourceBootstrapper && $bootstrap->hasPluginResource('CacheManager')) {
                 $cacheManager = $bootstrap->bootstrap('CacheManager')->getResource('CacheManager');
                 if (null !== $cacheManager && $cacheManager->hasCache($options['cache'])) {
                     $options['cache'] = $cacheManager->getCache($options['cache']);
                 }
             }
         }
         $key = isset($options['registry_key']) && !is_numeric($options['registry_key']) ? $options['registry_key'] : self::DEFAULT_REGISTRY_KEY;
         unset($options['registry_key']);
         if (IfwPsn_Vendor_Zend_Registry::isRegistered($key)) {
             $translate = IfwPsn_Vendor_Zend_Registry::get($key);
             if (!$translate instanceof IfwPsn_Vendor_Zend_Translate) {
                 require_once IFW_PSN_LIB_ROOT . 'IfwPsn/Vendor/Zend/Application/Resource/Exception.php';
                 throw new IfwPsn_Vendor_Zend_Application_Resource_Exception($key . ' already registered in registry but is ' . 'no instance of IfwPsn_Vendor_Zend_Translate');
             }
             $translate->addTranslation($options);
             $this->_translate = $translate;
         } else {
             $this->_translate = new IfwPsn_Vendor_Zend_Translate($options);
             IfwPsn_Vendor_Zend_Registry::set($key, $this->_translate);
         }
     }
     return $this->_translate;
 }
Ejemplo n.º 2
0
 /**
  * Retrieve logger object
  *
  * @return IfwPsn_Vendor_Zend_Log
  */
 public function getLog()
 {
     if (null === $this->_log) {
         $options = $this->getOptions();
         $log = IfwPsn_Vendor_Zend_Log::factory($options);
         $this->setLog($log);
     }
     return $this->_log;
 }
Ejemplo n.º 3
0
 /**
  * Retrieve IfwPsn_Vendor_Zend_Cache_Manager instance
  *
  * @return IfwPsn_Vendor_Zend_Cache_Manager
  */
 public function getCacheManager()
 {
     if (null === $this->_manager) {
         $this->_manager = new IfwPsn_Vendor_Zend_Cache_Manager();
         $options = $this->getOptions();
         foreach ($options as $key => $value) {
             // Logger
             if (isset($value['frontend']['options']['logger'])) {
                 $logger = $value['frontend']['options']['logger'];
                 if (is_array($logger)) {
                     $value['frontend']['options']['logger'] = IfwPsn_Vendor_Zend_Log::factory($logger);
                 }
             }
             // Cache templates
             if ($this->_manager->hasCacheTemplate($key)) {
                 $this->_manager->setTemplateOptions($key, $value);
             } else {
                 $this->_manager->setCacheTemplate($key, $value);
             }
         }
     }
     return $this->_manager;
 }
Ejemplo n.º 4
0
 /**
  * Make sure if we enable logging that the IfwPsn_Vendor_Zend_Log class
  * is available.
  * Create a default log object if none is set.
  *
  * @throws IfwPsn_Vendor_Zend_Cache_Exception
  * @return void
  */
 protected function _loggerSanity()
 {
     if (!isset($this->_options['logging']) || !$this->_options['logging']) {
         return;
     }
     if (isset($this->_options['logger']) && $this->_options['logger'] instanceof IfwPsn_Vendor_Zend_Log) {
         return;
     }
     // Create a default logger to the standard output stream
     require_once IFW_PSN_LIB_ROOT . 'IfwPsn/Vendor/Zend/Log.php';
     require_once IFW_PSN_LIB_ROOT . 'IfwPsn/Vendor/Zend/Log/Writer/Stream.php';
     require_once IFW_PSN_LIB_ROOT . 'IfwPsn/Vendor/Zend/Log/Filter/Priority.php';
     $logger = new IfwPsn_Vendor_Zend_Log(new IfwPsn_Vendor_Zend_Log_Writer_Stream('php://output'));
     $logger->addFilter(new IfwPsn_Vendor_Zend_Log_Filter_Priority(IfwPsn_Vendor_Zend_Log::WARN, '<='));
     $this->_options['logger'] = $logger;
 }
Ejemplo n.º 5
0
 /**
  * @param $message
  * @param null $extras
  * @param bool $append_backtrace
  * @throws IfwPsn_Vendor_Zend_Log_Exception
  */
 public function debug($message, $extras = null, $append_backtrace = false)
 {
     if ($append_backtrace) {
         $message = $this->_appendBacktrace($message);
     }
     parent::log($message, IfwPsn_Vendor_Zend_Log::DEBUG, $extras);
 }