| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 | <?php/** * Parent class for manifest parsers. * * Converts manifest.xml files or strings to an array. * * This should be extended by a class that does the actual work * to convert based on the manifest.xml version. * * This class only parses XML to an XmlEntity object and * an array.  The array should be used primarily to extract * information since it is quicker to parse once and store * values from the \ElggXmlElement object than to parse the object * each time. * * The array should be an exact representation of the manifest.xml * file or string.  Any normalization needs to be done in the * calling class / function. * * @package    Elgg.Core * @subpackage Plugins * @since      1.8 */abstract class ElggPluginManifestParser {	/**	 * The \ElggXmlElement object	 *	 * @var \ElggXmlElement	 */	protected $manifestObject;	/**	 * The manifest array	 *	 * @var array	 */	protected $manifest;	/**	 * All valid manifest attributes with default values.	 *	 * @var array	 */	protected $validAttributes;	/**	 * The object we're doing parsing for.	 *	 * @var object	 */	protected $caller;	/**	 * Loads the manifest XML to be parsed.	 *	 * @param \ElggXmlElement $xml    The Manifest XML object to be parsed	 * @param object          $caller The object calling this parser.	 */	public function __construct(\ElggXMLElement $xml, $caller) {		$this->manifestObject = $xml;		$this->caller = $caller;	}	/**	 * Returns the manifest XML object	 *	 * @return \ElggXmlElement	 */	public function getManifestObject() {		return $this->manifestObject;	}	/**	 * Return the parsed manifest array	 *	 * @return array	 */	public function getManifest() {		return $this->manifest;	}	/**	 * Return an attribute in the manifest.	 *	 * @param string $name Attribute name	 * @return mixed	 */	public function getAttribute($name) {		if (in_array($name, $this->validAttributes) && isset($this->manifest[$name])) {			return $this->manifest[$name];		}		return false;	}	/**	 * Parse the XML object into an array	 *	 * @return bool	 */	abstract public function parse();}
 |