Commit 918b86a5 authored by Thomas Müller's avatar Thomas Müller
Browse files

Merge pull request #14871 from owncloud/use-proper-error-type

Use proper error type and clean-up code
parents b8eb0b7c 4eb118dd
......@@ -21,6 +21,11 @@
namespace OC;
/**
* Class ArrayParser
*
* @package OC
*/
class ArrayParser {
const TYPE_NUM = 1;
const TYPE_BOOL = 2;
......@@ -31,7 +36,7 @@ class ArrayParser {
* @param string $string
* @return array|bool|int|null|string
*/
function parsePHP($string) {
public function parsePHP($string) {
$string = $this->stripPHPTags($string);
$string = $this->stripAssignAndReturn($string);
return $this->parse($string);
......@@ -41,7 +46,7 @@ class ArrayParser {
* @param string $string
* @return string
*/
function stripPHPTags($string) {
private function stripPHPTags($string) {
$string = trim($string);
if (substr($string, 0, 5) === '<?php') {
$string = substr($string, 5);
......@@ -56,7 +61,7 @@ class ArrayParser {
* @param string $string
* @return string
*/
function stripAssignAndReturn($string) {
private function stripAssignAndReturn($string) {
$string = trim($string);
if (substr($string, 0, 6) === 'return') {
$string = substr($string, 6);
......@@ -71,7 +76,7 @@ class ArrayParser {
* @param string $string
* @return array|bool|int|null|string
*/
function parse($string) {
private function parse($string) {
$string = trim($string);
$string = trim($string, ';');
switch ($this->getType($string)) {
......@@ -91,7 +96,7 @@ class ArrayParser {
* @param string $string
* @return int
*/
function getType($string) {
private function getType($string) {
$string = strtolower($string);
$first = substr($string, 0, 1);
$last = substr($string, -1, 1);
......@@ -111,7 +116,7 @@ class ArrayParser {
* @param string $string
* @return string
*/
function parseString($string) {
private function parseString($string) {
return substr($string, 1, -1);
}
......@@ -119,7 +124,7 @@ class ArrayParser {
* @param string $string
* @return int
*/
function parseNum($string) {
private function parseNum($string) {
return intval($string);
}
......@@ -127,7 +132,7 @@ class ArrayParser {
* @param string $string
* @return bool
*/
function parseBool($string) {
private function parseBool($string) {
$string = strtolower($string);
return $string === 'true';
}
......@@ -136,12 +141,12 @@ class ArrayParser {
* @param string $string
* @return array
*/
function parseArray($string) {
private function parseArray($string) {
$body = substr($string, 5);
$body = trim($body);
$body = substr($body, 1, -1);
$items = $this->splitArray($body);
$result = array();
$result = [];
$lastKey = -1;
foreach ($items as $item) {
$item = trim($item);
......@@ -167,15 +172,16 @@ class ArrayParser {
/**
* @param string $body
* @return array
* @throws \UnexpectedValueException
*/
function splitArray($body) {
$inSingleQuote = false;//keep track if we are inside quotes
private function splitArray($body) {
$inSingleQuote = false; //keep track if we are inside quotes
$inDoubleQuote = false;
$bracketDepth = 0;//keep track if we are inside brackets
$parts = array();
$bracketDepth = 0; //keep track if we are inside brackets
$parts = [];
$start = 0;
$escaped = false;//keep track if we are after an escape character
$skips = array();//keep track of the escape characters we need to remove from the result
$escaped = false; //keep track if we are after an escape character
$skips = []; //keep track of the escape characters we need to remove from the result
if (substr($body, -1, 1) !== ',') {
$body .= ',';
}
......@@ -206,7 +212,7 @@ class ArrayParser {
$bracketDepth++;
} elseif ($char === ')') {
if ($bracketDepth <= 0) {
throw new UnexpectedValueException();
throw new \UnexpectedValueException();
} else {
$bracketDepth--;
}
......@@ -217,7 +223,7 @@ class ArrayParser {
}
$parts[] = $part;
$start = $i + 1;
$skips = array();
$skips = [];
}
}
$escaped = false;
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment