Esempio n. 1
0
 /**
  * Configures the validation set.
  *
  * First this method tries to load a configuration from a configuration
  * file in the given configration directory using
  * Piece_Right_Config_Factory::factory method. The method creates a new
  * object if the load failed.
  * Second this method merges the given configuretion into the loaded
  * configuration.
  *
  * @param string             $validationSetName
  * @param Piece_Right_Config $dynamicConfig
  * @return Piece_Right_Config
  */
 function &_configure($validationSetName = null, $dynamicConfig = null)
 {
     $config =& Piece_Right_Config_Factory::factory($validationSetName, $this->_configDirectory, $this->_cacheDirectory, $this->_template);
     if (Piece_Right_Error::hasErrors()) {
         $return = null;
         return $return;
     }
     if (is_a($dynamicConfig, 'Piece_Right_Config')) {
         $config->merge($dynamicConfig);
     }
     return $config;
 }
Esempio n. 2
0
 /**
  * Merges the given validation set into the Piece_Right_Config object for
  * the current validation.
  *
  * @param string $validationSetName
  * @param string $configDirectory
  * @param string $cacheDirectory
  * @throws PIECE_UNITY_ERROR_INVOCATION_FAILED
  * @since Method available since Release 1.3.0
  */
 function mergeValidationSet($validationSetName, $configDirectory = null, $cacheDirectory = null)
 {
     if (is_null($configDirectory)) {
         $configDirectory = $this->_configDirectory;
     }
     if (is_null($cacheDirectory)) {
         $cacheDirectory = $this->_cacheDirectory;
     }
     Piece_Right_Error::disableCallback();
     $config =& Piece_Right_Config_Factory::factory($validationSetName, $configDirectory, $cacheDirectory, $this->_template);
     Piece_Right_Error::enableCallback();
     if (Piece_Right_Error::hasErrors()) {
         Piece_Unity_Error::push(PIECE_UNITY_ERROR_INVOCATION_FAILED, 'Failed to invoke Piece_Right_Validation_Script::mergeValidationSet() for any reasons.', 'exception', array(), Piece_Right_Error::pop());
         return;
     }
     if (is_null($this->_config)) {
         $this->_config =& new Piece_Right_Config();
     }
     $this->_config->merge($config);
 }
Esempio n. 3
0
 /**
  * Creates a Piece_Right_Config object from a configuration file or a
  * cache.
  *
  * @param string $validationSetName
  * @param string $configDirectory
  * @param string $cacheDirectory
  * @param string $TemplateName
  * @return Piece_Right_Config
  * @throws PIECE_RIGHT_ERROR_NOT_FOUND
  * @throws PIECE_RIGHT_ERROR_NOT_READABLE
  */
 function &factory($validationSetName = null, $configDirectory = null, $cacheDirectory = null, $templateName = null)
 {
     if (is_null($validationSetName) || is_null($configDirectory)) {
         $config =& new Piece_Right_Config();
         return $config;
     }
     if ($GLOBALS['PIECE_RIGHT_Config_Factory_UseUnderscoreAsDirectorySeparator']) {
         $validationSetName = str_replace('_', '/', $validationSetName);
     }
     $configFile = "{$configDirectory}/{$validationSetName}.yaml";
     if (!file_exists($configFile)) {
         Piece_Right_Error::push(PIECE_RIGHT_ERROR_NOT_FOUND, "The configuration file [ {$configFile} ] is not found.");
         $return = null;
         return $return;
     }
     if (!is_readable($configFile)) {
         Piece_Right_Error::push(PIECE_RIGHT_ERROR_NOT_READABLE, "The configuration file [ {$configFile} ] is not readable.");
         $return = null;
         return $return;
     }
     while (true) {
         if (is_null($cacheDirectory)) {
             $config =& Piece_Right_Config_Factory::_getConfigurationFromFile($configFile);
             break;
         }
         if (!file_exists($cacheDirectory)) {
             trigger_error("The cache directory [ {$cacheDirectory} ] is not found.", E_USER_WARNING);
             $config =& Piece_Right_Config_Factory::_getConfigurationFromFile($configFile);
             break;
         }
         if (!is_readable($cacheDirectory) || !is_writable($cacheDirectory)) {
             trigger_error("The cache directory [ {$cacheDirectory} ] is not readable or writable.", E_USER_WARNING);
             $config =& Piece_Right_Config_Factory::_getConfigurationFromFile($configFile);
             break;
         }
         $config =& Piece_Right_Config_Factory::_getConfiguration($configFile, $cacheDirectory);
         break;
     }
     if (Piece_Right_Error::hasErrors()) {
         $return = null;
         return $return;
     }
     if (is_null($templateName)) {
         return $config;
     }
     $template =& Piece_Right_Config_Factory::factory($templateName, $configDirectory, $cacheDirectory, null);
     if (Piece_Right_Error::hasErrors()) {
         $return = null;
         return $return;
     }
     foreach ($config->getFieldNames() as $fieldName) {
         if (!$config->hasBasedOn($fieldName)) {
             continue;
         }
         $basedOn = $config->getBasedOn($fieldName);
         $config->inherit($fieldName, $basedOn, $template);
     }
     return $config;
 }
Esempio n. 4
0
 /**
  * Merges the given validation set into the Piece_Right_Config object for
  * the current validation.
  *
  * @param string $validationSetName
  * @param string $configDirectory
  * @param string $cacheDirectory
  * @throws PIECE_UNITY_ERROR_INVOCATION_FAILED
  * @since Method available since Release 1.3.0
  */
 public function mergeValidationSet($validationSetName, $configDirectory = null, $cacheDirectory = null)
 {
     if (is_null($configDirectory)) {
         $configDirectory = $this->_configDirectory;
     }
     if (is_null($cacheDirectory)) {
         $cacheDirectory = $this->_cacheDirectory;
     }
     $config = Piece_Right_Config_Factory::factory($validationSetName, $configDirectory, $cacheDirectory, $this->_template);
     if (is_null($this->_config)) {
         $this->_config = new Piece_Right_Config();
     }
     $this->_config->merge($config);
 }