public function parseXml($xml) { $xml = parent::parseXml($xml); if (isset($xml->path)) { foreach ($xml->path as $path) { switch (isset($path['priority']) ? $path['priority'] : 'high') { case 'high': $this->appendPaths[] = $this->parsePath((string) $path); break; case 'low': $this->prependPaths[] = $this->parsePath((string) $path); break; default: throw new sfConfigurationException('Path «priority» attribute can only be «high» or «low».'); } } } if (isset($xml->require)) { foreach ($xml->require as $require) { $this->requires[] = (string) $require; } } if (isset($xml->conflict)) { foreach ($xml->conflict as $conflict) { $this->conflicts[] = (string) $conflict; } } if (isset($xml->i18n)) { foreach ($xml->i18n as $i18n) { if (!strlen($language = (string) $i18n['language'])) { throw new sfConfigurationException('Each I18n tag should have a language attribute.'); } $this->i18n[$language] = new sfDynamicsAssetCollectionDefinition($i18n); } } if (isset($xml->theme)) { $hasDefault = false; foreach ($xml->theme as $theme) { if (!strlen($themeName = (string) $theme['name'])) { throw new sfConfigurationException('Each theme tag should have a name attribute.'); } $this->themes[$themeName] = new sfDynamicsAssetCollectionDefinition($theme); } } return $xml; }