/** * Creates a Piece_ORM_Config object from a configuration file or * a cache. * * @param string $configDirectory * @param string $cacheDirectory * @return Piece_ORM_Config * @static */ function &factory($configDirectory = null, $cacheDirectory = null) { if (is_null($configDirectory)) { $config =& new Piece_ORM_Config(); return $config; } if (!file_exists($configDirectory)) { Piece_ORM_Error::push(PIECE_ORM_ERROR_NOT_FOUND, "The configuration directory [ {$configDirectory} ] not found."); $return = null; return $return; } $configFile = "{$configDirectory}/piece-orm-config.yaml"; if (!file_exists($configFile)) { Piece_ORM_Error::push(PIECE_ORM_ERROR_NOT_FOUND, "The configuration file [ {$configFile} ] not found."); $return = null; return $return; } if (!is_readable($configFile)) { Piece_ORM_Error::push(PIECE_ORM_ERROR_NOT_READABLE, "The configuration file [ {$configFile} ] is not readable."); $return = null; return $return; } if (is_null($cacheDirectory)) { return Piece_ORM_Config_Factory::_createConfigurationFromFile($configFile); } if (!file_exists($cacheDirectory)) { trigger_error("The cache directory [ {$cacheDirectory} ] is not found.", E_USER_WARNING); return Piece_ORM_Config_Factory::_createConfigurationFromFile($configFile); } if (!is_readable($cacheDirectory) || !is_writable($cacheDirectory)) { trigger_error("The cache directory [ {$cacheDirectory} ] is not readable or writable.", E_USER_WARNING); return Piece_ORM_Config_Factory::_createConfigurationFromFile($configFile); } return Piece_ORM_Config_Factory::_getConfiguration($configFile, $cacheDirectory); }