Added vendor/ directory for Composer's installed files
This commit is contained in:
55
vendor/hassankhan/config/src/FileParser/Xml.php
vendored
Executable file
55
vendor/hassankhan/config/src/FileParser/Xml.php
vendored
Executable file
@ -0,0 +1,55 @@
|
||||
<?php
|
||||
|
||||
namespace Noodlehaus\FileParser;
|
||||
|
||||
use Noodlehaus\Exception\ParseException;
|
||||
|
||||
/**
|
||||
* XML file parser
|
||||
*
|
||||
* @package Config
|
||||
* @author Jesus A. Domingo <jesus.domingo@gmail.com>
|
||||
* @author Hassan Khan <contact@hassankhan.me>
|
||||
* @link https://github.com/noodlehaus/config
|
||||
* @license MIT
|
||||
*/
|
||||
class Xml implements FileParserInterface
|
||||
{
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
* Parses an XML file as an array
|
||||
*
|
||||
* @throws ParseException If there is an error parsing the XML file
|
||||
*/
|
||||
public function parse($path)
|
||||
{
|
||||
libxml_use_internal_errors(true);
|
||||
|
||||
$data = simplexml_load_file($path, null, LIBXML_NOERROR);
|
||||
|
||||
if ($data === false) {
|
||||
$errors = libxml_get_errors();
|
||||
$latestError = array_pop($errors);
|
||||
$error = array(
|
||||
'message' => $latestError->message,
|
||||
'type' => $latestError->level,
|
||||
'code' => $latestError->code,
|
||||
'file' => $latestError->file,
|
||||
'line' => $latestError->line,
|
||||
);
|
||||
throw new ParseException($error);
|
||||
}
|
||||
|
||||
$data = json_decode(json_encode($data), true);
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function getSupportedExtensions()
|
||||
{
|
||||
return array('xml');
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user