/** * 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; }
/** * 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); }
/** * 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; }
/** * 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); }