summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Component.php24
-rw-r--r--src/Components/AlterOperation.php125
-rw-r--r--src/Components/Array2d.php12
-rw-r--r--src/Components/ArrayObj.php35
-rw-r--r--src/Components/CaseExpression.php21
-rw-r--r--src/Components/Condition.php36
-rw-r--r--src/Components/CreateDefinition.php64
-rw-r--r--src/Components/DataType.php40
-rw-r--r--src/Components/Expression.php34
-rw-r--r--src/Components/ExpressionArray.php14
-rw-r--r--src/Components/FunctionCall.php14
-rw-r--r--src/Components/GroupKeyword.php22
-rw-r--r--src/Components/IndexHint.php31
-rw-r--r--src/Components/IntoKeyword.php58
-rw-r--r--src/Components/JoinKeyword.php34
-rw-r--r--src/Components/Key.php44
-rw-r--r--src/Components/Limit.php14
-rw-r--r--src/Components/LockExpression.php16
-rw-r--r--src/Components/OptionsArray.php36
-rw-r--r--src/Components/OrderKeyword.php18
-rw-r--r--src/Components/ParameterDefinition.php18
-rw-r--r--src/Components/PartitionDefinition.php66
-rw-r--r--src/Components/Reference.php38
-rw-r--r--src/Components/RenameOperation.php30
-rw-r--r--src/Components/SetOperation.php26
-rw-r--r--src/Components/UnionKeyword.php10
-rw-r--r--src/Context.php20
-rw-r--r--src/Contexts/ContextMariaDb100000.php12
-rw-r--r--src/Contexts/ContextMariaDb100100.php12
-rw-r--r--src/Contexts/ContextMariaDb100200.php12
-rw-r--r--src/Contexts/ContextMariaDb100300.php12
-rw-r--r--src/Contexts/ContextMySql50000.php12
-rw-r--r--src/Contexts/ContextMySql50100.php12
-rw-r--r--src/Contexts/ContextMySql50500.php12
-rw-r--r--src/Contexts/ContextMySql50600.php12
-rw-r--r--src/Contexts/ContextMySql50700.php12
-rw-r--r--src/Contexts/ContextMySql80000.php12
-rw-r--r--src/Core.php18
-rw-r--r--src/Exceptions/LexerException.php12
-rw-r--r--src/Exceptions/LoaderException.php12
-rw-r--r--src/Exceptions/ParserException.php11
-rw-r--r--src/Lexer.php16
-rw-r--r--src/Parser.php268
-rw-r--r--src/Statement.php28
-rw-r--r--src/Statements/AlterStatement.php24
-rw-r--r--src/Statements/AnalyzeStatement.php16
-rw-r--r--src/Statements/BackupStatement.php16
-rw-r--r--src/Statements/CallStatement.php8
-rw-r--r--src/Statements/CheckStatement.php14
-rw-r--r--src/Statements/ChecksumStatement.php14
-rw-r--r--src/Statements/CreateStatement.php216
-rw-r--r--src/Statements/DeleteStatement.php63
-rw-r--r--src/Statements/DropStatement.php32
-rw-r--r--src/Statements/ExplainStatement.php6
-rw-r--r--src/Statements/InsertStatement.php24
-rw-r--r--src/Statements/LoadStatement.php57
-rw-r--r--src/Statements/LockStatement.php8
-rw-r--r--src/Statements/MaintenanceStatement.php6
-rw-r--r--src/Statements/NotImplementedStatement.php8
-rw-r--r--src/Statements/OptimizeStatement.php12
-rw-r--r--src/Statements/PurgeStatement.php18
-rw-r--r--src/Statements/RenameStatement.php6
-rw-r--r--src/Statements/RepairStatement.php12
-rw-r--r--src/Statements/ReplaceStatement.php20
-rw-r--r--src/Statements/RestoreStatement.php14
-rw-r--r--src/Statements/SelectStatement.php180
-rw-r--r--src/Statements/SetStatement.php56
-rw-r--r--src/Statements/ShowStatement.php12
-rw-r--r--src/Statements/TransactionStatement.php12
-rw-r--r--src/Statements/TruncateStatement.php12
-rw-r--r--src/Statements/UpdateStatement.php44
-rw-r--r--src/Token.php18
-rw-r--r--src/TokensList.php16
-rw-r--r--src/Translator.php12
-rw-r--r--src/UtfString.php25
-rw-r--r--src/Utils/BufferedQuery.php16
-rw-r--r--src/Utils/CLI.php39
-rw-r--r--src/Utils/Error.php30
-rw-r--r--src/Utils/Formatter.php106
-rw-r--r--src/Utils/Misc.php32
-rw-r--r--src/Utils/Query.php72
-rw-r--r--src/Utils/Routine.php52
-rw-r--r--src/Utils/Table.php28
-rw-r--r--src/Utils/Tokens.php10
84 files changed, 1191 insertions, 1560 deletions
diff --git a/src/Component.php b/src/Component.php
index bb230c2..656d318 100644
--- a/src/Component.php
+++ b/src/Component.php
@@ -1,5 +1,4 @@
<?php
-
/**
* Defines a component that is later extended to parse specialized components or
* keywords.
@@ -8,16 +7,15 @@
* *Component parsers can be reused in multiple situations and *Keyword parsers
* count on the *Component classes to do their job.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser;
+use Exception;
+
/**
* A component (of a statement) is a part of a statement that is common to
* multiple query types.
- *
- * @category Components
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
abstract class Component
{
@@ -29,18 +27,18 @@ abstract class Component
* @param TokensList $list the list of tokens that are being parsed
* @param array $options parameters for parsing
*
- * @throws \Exception not implemented yet
- *
* @return mixed
+ *
+ * @throws Exception not implemented yet.
*/
public static function parse(
Parser $parser,
TokensList $list,
- array $options = array()
+ array $options = []
) {
// This method should be abstract, but it can't be both static and
// abstract.
- throw new \Exception(Translator::gettext('Not implemented yet.'));
+ throw new Exception(Translator::gettext('Not implemented yet.'));
}
/**
@@ -52,15 +50,15 @@ abstract class Component
* @param mixed $component the component to be built
* @param array $options parameters for building
*
- * @throws \Exception not implemented yet
+ * @return mixed
*
- * @return string
+ * @throws Exception not implemented yet.
*/
- public static function build($component, array $options = array())
+ public static function build($component, array $options = [])
{
// This method should be abstract, but it can't be both static and
// abstract.
- throw new \Exception(Translator::gettext('Not implemented yet.'));
+ throw new Exception(Translator::gettext('Not implemented yet.'));
}
/**
diff --git a/src/Components/AlterOperation.php b/src/Components/AlterOperation.php
index e3a3f9f..09f928f 100644
--- a/src/Components/AlterOperation.php
+++ b/src/Components/AlterOperation.php
@@ -1,8 +1,8 @@
<?php
-
/**
* Parses an alter operation.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Components;
@@ -13,10 +13,6 @@ use PhpMyAdmin\SqlParser\TokensList;
/**
* Parses an alter operation.
- *
- * @category Components
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class AlterOperation extends Component
{
@@ -25,67 +21,67 @@ class AlterOperation extends Component
*
* @var array
*/
- public static $DB_OPTIONS = array(
- 'CHARACTER SET' => array(
+ public static $DB_OPTIONS = [
+ 'CHARACTER SET' => [
1,
- 'var'
- ),
- 'CHARSET' => array(
+ 'var',
+ ],
+ 'CHARSET' => [
1,
- 'var'
- ),
- 'DEFAULT CHARACTER SET' => array(
+ 'var',
+ ],
+ 'DEFAULT CHARACTER SET' => [
1,
- 'var'
- ),
- 'DEFAULT CHARSET' => array(
+ 'var',
+ ],
+ 'DEFAULT CHARSET' => [
1,
- 'var'
- ),
- 'UPGRADE' => array(
+ 'var',
+ ],
+ 'UPGRADE' => [
1,
- 'var'
- ),
- 'COLLATE' => array(
+ 'var',
+ ],
+ 'COLLATE' => [
2,
- 'var'
- ),
- 'DEFAULT COLLATE' => array(
+ 'var',
+ ],
+ 'DEFAULT COLLATE' => [
2,
- 'var'
- )
- );
+ 'var',
+ ],
+ ];
/**
* All table options.
*
* @var array
*/
- public static $TABLE_OPTIONS = array(
- 'ENGINE' => array(
+ public static $TABLE_OPTIONS = [
+ 'ENGINE' => [
1,
- 'var='
- ),
- 'AUTO_INCREMENT' => array(
+ 'var=',
+ ],
+ 'AUTO_INCREMENT' => [
1,
- 'var='
- ),
- 'AVG_ROW_LENGTH' => array(
+ 'var=',
+ ],
+ 'AVG_ROW_LENGTH' => [
1,
- 'var'
- ),
- 'MAX_ROWS' => array(
+ 'var',
+ ],
+ 'MAX_ROWS' => [
1,
- 'var'
- ),
- 'ROW_FORMAT' => array(
+ 'var',
+ ],
+ 'ROW_FORMAT' => [
1,
- 'var'
- ),
- 'COMMENT' => array(
+ 'var',
+ ],
+ 'COMMENT' => [
1,
- 'var'
- ),
+ 'var',
+ ],
'ADD' => 1,
'ALTER' => 1,
'ANALYZE' => 1,
@@ -122,17 +118,17 @@ class AlterOperation extends Component
'PRIMARY KEY' => 2,
'SPATIAL' => 2,
'TABLESPACE' => 2,
- 'INDEX' => 2
- );
+ 'INDEX' => 2,
+ ];
/**
* All view options.
*
* @var array
*/
- public static $VIEW_OPTIONS = array(
+ public static $VIEW_OPTIONS = [
'AS' => 1,
- );
+ ];
/**
* Options of this operation.
@@ -153,11 +149,9 @@ class AlterOperation extends Component
*
* @var Token[]|string
*/
- public $unknown = array();
+ public $unknown = [];
/**
- * Constructor.
- *
* @param OptionsArray $options options of alter operation
* @param Expression $field altered field
* @param array $unknown unparsed tokens found at the end of operation
@@ -165,7 +159,7 @@ class AlterOperation extends Component
public function __construct(
$options = null,
$field = null,
- $unknown = array()
+ $unknown = []
) {
$this->options = $options;
$this->field = $field;
@@ -179,9 +173,9 @@ class AlterOperation extends Component
*
* @return AlterOperation
*/
- public static function parse(Parser $parser, TokensList $list, array $options = array())
+ public static function parse(Parser $parser, TokensList $list, array $options = [])
{
- $ret = new self();
+ $ret = new static();
/**
* Counts brackets.
@@ -251,10 +245,10 @@ class AlterOperation extends Component
$ret->field = Expression::parse(
$parser,
$list,
- array(
+ [
'breakOnAlias' => true,
- 'parseField' => 'column'
- )
+ 'parseField' => 'column',
+ ]
);
if ($ret->field === null) {
// No field was read. We go back one token so the next
@@ -315,10 +309,10 @@ class AlterOperation extends Component
*
* @return string
*/
- public static function build($component, array $options = array())
+ public static function build($component, array $options = [])
{
$ret = $component->options . ' ';
- if ((isset($component->field)) && ($component->field !== '')) {
+ if (isset($component->field) && ($component->field !== '')) {
$ret .= $component->field . ' ';
}
$ret .= TokensList::build($component->unknown);
@@ -331,11 +325,12 @@ class AlterOperation extends Component
* between column and table alteration
*
* @param string $tokenValue Value of current token
+ *
* @return bool
*/
private static function checkIfColumnDefinitionKeyword($tokenValue)
{
- $common_options = array(
+ $common_options = [
'AUTO_INCREMENT',
'COMMENT',
'DEFAULT',
@@ -344,8 +339,8 @@ class AlterOperation extends Component
'PRIMARY',
'UNIQUE',
'PRIMARY KEY',
- 'UNIQUE KEY'
- );
+ 'UNIQUE KEY',
+ ];
// Since these options can be used for
// both table as well as a specific column in the table
return in_array($tokenValue, $common_options);
diff --git a/src/Components/Array2d.php b/src/Components/Array2d.php
index 984179c..1ae5c30 100644
--- a/src/Components/Array2d.php
+++ b/src/Components/Array2d.php
@@ -1,8 +1,8 @@
<?php
-
/**
* `VALUES` keyword parser.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Components;
@@ -14,10 +14,6 @@ use PhpMyAdmin\SqlParser\Translator;
/**
* `VALUES` keyword parser.
- *
- * @category Keywords
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class Array2d extends Component
{
@@ -28,9 +24,9 @@ class Array2d extends Component
*
* @return ArrayObj[]
*/
- public static function parse(Parser $parser, TokensList $list, array $options = array())
+ public static function parse(Parser $parser, TokensList $list, array $options = [])
{
- $ret = array();
+ $ret = [];
/**
* The number of values in each set.
@@ -124,7 +120,7 @@ class Array2d extends Component
*
* @return string
*/
- public static function build($component, array $options = array())
+ public static function build($component, array $options = [])
{
return ArrayObj::build($component);
}
diff --git a/src/Components/ArrayObj.php b/src/Components/ArrayObj.php
index 2b2fe92..ab1ad61 100644
--- a/src/Components/ArrayObj.php
+++ b/src/Components/ArrayObj.php
@@ -1,8 +1,8 @@
<?php
-
/**
* Parses an array.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Components;
@@ -13,10 +13,6 @@ use PhpMyAdmin\SqlParser\TokensList;
/**
* Parses an array.
- *
- * @category Components
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class ArrayObj extends Component
{
@@ -25,22 +21,20 @@ class ArrayObj extends Component
*
* @var array
*/
- public $raw = array();
+ public $raw = [];
/**
* The array that contains the processed value of each token.
*
* @var array
*/
- public $values = array();
+ public $values = [];
/**
- * Constructor.
- *
* @param array $raw the unprocessed values
* @param array $values the processed values
*/
- public function __construct(array $raw = array(), array $values = array())
+ public function __construct(array $raw = [], array $values = [])
{
$this->raw = $raw;
$this->values = $values;
@@ -53,9 +47,9 @@ class ArrayObj extends Component
*
* @return ArrayObj|Component[]
*/
- public static function parse(Parser $parser, TokensList $list, array $options = array())
+ public static function parse(Parser $parser, TokensList $list, array $options = [])
{
- $ret = empty($options['type']) ? new self() : array();
+ $ret = empty($options['type']) ? new static() : [];
/**
* The last raw expression.
@@ -144,7 +138,7 @@ class ArrayObj extends Component
$ret[] = $options['type']::parse(
$parser,
$list,
- empty($options['typeOptions']) ? array() : $options['typeOptions']
+ empty($options['typeOptions']) ? [] : $options['typeOptions']
);
}
}
@@ -153,14 +147,13 @@ class ArrayObj extends Component
//
// This is treated differently to treat the following cases:
//
- // => array()
- // (,) => array('', '')
- // () => array()
- // (a,) => array('a', '')
- // (a) => array('a')
- //
+ // => []
+ // [,] => ['', '']
+ // [] => []
+ // [a,] => ['a', '']
+ // [a] => ['a']
$lastRaw = trim($lastRaw);
- if ((empty($options['type']))
+ if (empty($options['type'])
&& ((strlen($lastRaw) > 0) || ($isCommaLast))
) {
$ret->raw[] = $lastRaw;
@@ -176,7 +169,7 @@ class ArrayObj extends Component
*
* @return string
*/
- public static function build($component, array $options = array())
+ public static function build($component, array $options = [])
{
if (is_array($component)) {
return implode(', ', $component);
diff --git a/src/Components/CaseExpression.php b/src/Components/CaseExpression.php
index f6b422c..26c044f 100644
--- a/src/Components/CaseExpression.php
+++ b/src/Components/CaseExpression.php
@@ -1,8 +1,8 @@
<?php
-
/**
* Parses a reference to a CASE expression.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Components;
@@ -14,10 +14,6 @@ use PhpMyAdmin\SqlParser\TokensList;
/**
* Parses a reference to a CASE expression.
- *
- * @category Components
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class CaseExpression extends Component
{
@@ -33,21 +29,21 @@ class CaseExpression extends Component
*
* @var array
*/
- public $conditions = array();
+ public $conditions = [];
/**
* The results matching with the WHEN clauses.
*
* @var array
*/
- public $results = array();
+ public $results = [];
/**
* The values to be compared against.
*
* @var array
*/
- public $compare_values = array();
+ public $compare_values = [];
/**
* The result in ELSE section of expr.
@@ -70,9 +66,6 @@ class CaseExpression extends Component
*/
public $expr = '';
- /**
- * Constructor.
- */
public function __construct()
{
}
@@ -84,9 +77,9 @@ class CaseExpression extends Component
*
* @return CaseExpression
*/
- public static function parse(Parser $parser, TokensList $list, array $options = array())
+ public static function parse(Parser $parser, TokensList $list, array $options = [])
{
- $ret = new self();
+ $ret = new static();
/**
* State of parser.
@@ -279,7 +272,7 @@ class CaseExpression extends Component
*
* @return string
*/
- public static function build($component, array $options = array())
+ public static function build($component, array $options = [])
{
$ret = 'CASE ';
if (isset($component->value)) {
diff --git a/src/Components/Condition.php b/src/Components/Condition.php
index 700b071..b719b28 100644
--- a/src/Components/Condition.php
+++ b/src/Components/Condition.php
@@ -1,8 +1,8 @@
<?php
-
/**
* `WHERE` keyword parser.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Components;
@@ -13,10 +13,6 @@ use PhpMyAdmin\SqlParser\TokensList;
/**
* `WHERE` keyword parser.
- *
- * @category Keywords
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class Condition extends Component
{
@@ -25,20 +21,20 @@ class Condition extends Component
*
* @var array
*/
- public static $DELIMITERS = array(
+ public static $DELIMITERS = [
'&&',
'||',
'AND',
'OR',
- 'XOR'
- );
+ 'XOR',
+ ];
/**
* List of allowed reserved keywords in conditions.
*
* @var array
*/
- public static $ALLOWED_KEYWORDS = array(
+ public static $ALLOWED_KEYWORDS = [
'ALL' => 1,
'AND' => 1,
'BETWEEN' => 1,
@@ -56,15 +52,15 @@ class Condition extends Component
'OR' => 1,
'REGEXP' => 1,
'RLIKE' => 1,
- 'XOR' => 1
- );
+ 'XOR' => 1,
+ ];
/**
* Identifiers recognized.
*
* @var array
*/
- public $identifiers = array();
+ public $identifiers = [];
/**
* Whether this component is an operator.
@@ -81,13 +77,11 @@ class Condition extends Component
public $expr;
/**
- * Constructor.
- *
* @param string $expr the condition or the operator
*/
public function __construct($expr = null)
{
- $this->expr = trim($expr);
+ $this->expr = trim((string) $expr);
}
/**
@@ -97,11 +91,11 @@ class Condition extends Component
*
* @return Condition[]
*/
- public static function parse(Parser $parser, TokensList $list, array $options = array())
+ public static function parse(Parser $parser, TokensList $list, array $options = [])
{
- $ret = array();
+ $ret = [];
- $expr = new self();
+ $expr = new static();
/**
* Counts brackets.
@@ -159,12 +153,12 @@ class Condition extends Component
}
// Adding the operator.
- $expr = new self($token->value);
+ $expr = new static($token->value);
$expr->isOperator = true;
$ret[] = $expr;
// Preparing to parse another condition.
- $expr = new self();
+ $expr = new static();
continue;
}
}
@@ -222,7 +216,7 @@ class Condition extends Component
*
* @return string
*/
- public static function build($component, array $options = array())
+ public static function build($component, array $options = [])
{
if (is_array($component)) {
return implode(' ', $component);
diff --git a/src/Components/CreateDefinition.php b/src/Components/CreateDefinition.php
index 0f44e09..0cd29c9 100644
--- a/src/Components/CreateDefinition.php
+++ b/src/Components/CreateDefinition.php
@@ -1,10 +1,10 @@
<?php
-
/**
* Parses the create definition of a column or a key.
*
* Used for parsing `CREATE TABLE` statement.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Components;
@@ -18,10 +18,6 @@ use PhpMyAdmin\SqlParser\TokensList;
* Parses the create definition of a column or a key.
*
* Used for parsing `CREATE TABLE` statement.
- *
- * @category Components
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class CreateDefinition extends Component
{
@@ -30,61 +26,61 @@ class CreateDefinition extends Component
*
* @var array
*/
- public static $FIELD_OPTIONS = array(
+ public static $FIELD_OPTIONS = [
// Tells the `OptionsArray` to not sort the options.
// See the note below.
'_UNSORTED' => true,
'NOT NULL' => 1,
'NULL' => 1,
- 'DEFAULT' => array(
+ 'DEFAULT' => [
2,
'expr',
- array('breakOnAlias' => true)
- ),
+ ['breakOnAlias' => true],
+ ],
/* Following are not according to grammar, but MySQL happily accepts
* these at any location */
- 'CHARSET' => array(
+ 'CHARSET' => [
2,
'var',
- ),
- 'COLLATE' => array(
+ ],
+ 'COLLATE' => [
3,
'var',
- ),
+ ],
'AUTO_INCREMENT' => 3,
'PRIMARY' => 4,
'PRIMARY KEY' => 4,
'UNIQUE' => 4,
'UNIQUE KEY' => 4,
- 'COMMENT' => array(
+ 'COMMENT' => [
5,
'var',
- ),
- 'COLUMN_FORMAT' => array(
+ ],
+ 'COLUMN_FORMAT' => [
6,
'var',
- ),
- 'ON UPDATE' => array(
+ ],
+ 'ON UPDATE' => [
7,
'expr',
- ),
+ ],
// Generated columns options.
'GENERATED ALWAYS' => 8,
- 'AS' => array(
+ 'AS' => [
9,
'expr',
- array('parenthesesDelimited' => true)
- ),
+ ['parenthesesDelimited' => true],
+ ],
'VIRTUAL' => 10,
'PERSISTENT' => 11,
'STORED' => 11,
- 'CHECK' => array(
+ 'CHECK' => [
12,
'expr',
- array('parenthesesDelimited' => true),
- )
+ ['parenthesesDelimited' => true],
+ ],
// Common entries.
//
// NOTE: Some of the common options are not in the same order which
@@ -94,12 +90,12 @@ class CreateDefinition extends Component
//
// 'UNIQUE' => 4,
// 'UNIQUE KEY' => 4,
- // 'COMMENT' => array(5, 'var'),
+ // 'COMMENT' => [5, 'var'],
// 'NOT NULL' => 1,
// 'NULL' => 1,
// 'PRIMARY' => 4,
// 'PRIMARY KEY' => 4,
- );
+ ];
/**
* The name of the new column.
@@ -144,8 +140,6 @@ class CreateDefinition extends Component
public $options;
/**
- * Constructor.
- *
* @param string $name the name of the field
* @param OptionsArray $options the options of this field
* @param DataType|Key $type the data type of this field or the key
@@ -177,11 +171,11 @@ class CreateDefinition extends Component
*
* @return CreateDefinition[]
*/
- public static function parse(Parser $parser, TokensList $list, array $options = array())
+ public static function parse(Parser $parser, TokensList $list, array $options = [])
{
- $ret = array();
+ $ret = [];
- $expr = new self();
+ $expr = new static();
/**
* The state of the parser.
@@ -290,7 +284,7 @@ class CreateDefinition extends Component
if (! empty($expr->type) || ! empty($expr->key)) {
$ret[] = $expr;
}
- $expr = new self();
+ $expr = new static();
if ($token->value === ',') {
$state = 1;
} elseif ($token->value === ')') {
@@ -331,7 +325,7 @@ class CreateDefinition extends Component
*
* @return string
*/
- public static function build($component, array $options = array())
+ public static function build($component, array $options = [])
{
if (is_array($component)) {
return "(\n " . implode(",\n ", $component) . "\n)";
@@ -350,7 +344,7 @@ class CreateDefinition extends Component
if (! empty($component->type)) {
$tmp .= DataType::build(
$component->type,
- array('lowercase' => true)
+ ['lowercase' => true]
) . ' ';
}
diff --git a/src/Components/DataType.php b/src/Components/DataType.php
index d19d434..484e559 100644
--- a/src/Components/DataType.php
+++ b/src/Components/DataType.php
@@ -1,8 +1,8 @@
<?php
-
/**
* Parses a data type.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Components;
@@ -13,10 +13,6 @@ use PhpMyAdmin\SqlParser\TokensList;
/**
* Parses a data type.
- *
- * @category Components
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class DataType extends Component
{
@@ -25,23 +21,23 @@ class DataType extends Component
*
* @var array
*/
- public static $DATA_TYPE_OPTIONS = array(
+ public static $DATA_TYPE_OPTIONS = [
'BINARY' => 1,
- 'CHARACTER SET' => array(
+ 'CHARACTER SET' => [
2,
'var',
- ),
- 'CHARSET' => array(
+ ],
+ 'CHARSET' => [
2,
'var',
- ),
- 'COLLATE' => array(
+ ],
+ 'COLLATE' => [
3,
'var',
- ),
+ ],
'UNSIGNED' => 4,
- 'ZEROFILL' => 5
- );
+ 'ZEROFILL' => 5,
+ ];
/**
* The name of the data type.
@@ -63,7 +59,7 @@ class DataType extends Component
*
* @var array
*/
- public $parameters = array();
+ public $parameters = [];
/**
* The options of this data type.
@@ -73,15 +69,13 @@ class DataType extends Component
public $options;
/**
- * Constructor.
- *
* @param string $name the name of this data type
* @param array $parameters the parameters (size or possible values)
* @param OptionsArray $options the options of this data type
*/
public function __construct(
$name = null,
- array $parameters = array(),
+ array $parameters = [],
$options = null
) {
$this->name = $name;
@@ -96,9 +90,9 @@ class DataType extends Component
*
* @return DataType|null
*/
- public static function parse(Parser $parser, TokensList $list, array $options = array())
+ public static function parse(Parser $parser, TokensList $list, array $options = [])
{
- $ret = new self();
+ $ret = new static();
/**
* The state of the parser.
@@ -127,7 +121,7 @@ class DataType extends Component
}
if ($state === 0) {
- $ret->name = strtoupper($token->value);
+ $ret->name = strtoupper((string) $token->value);
if (($token->type !== Token::TYPE_KEYWORD) || (! ($token->flags & Token::FLAG_KEYWORD_DATA_TYPE))) {
$parser->error('Unrecognized data type.', $token);
}
@@ -136,7 +130,7 @@ class DataType extends Component
if (($token->type === Token::TYPE_OPERATOR) && ($token->value === '(')) {
$parameters = ArrayObj::parse($parser, $list);
++$list->idx;
- $ret->parameters = (($ret->name === 'ENUM') || ($ret->name === 'SET')) ?
+ $ret->parameters = ($ret->name === 'ENUM') || ($ret->name === 'SET') ?
$parameters->raw : $parameters->values;
}
$ret->options = OptionsArray::parse($parser, $list, static::$DATA_TYPE_OPTIONS);
@@ -160,7 +154,7 @@ class DataType extends Component
*
* @return string
*/
- public static function build($component, array $options = array())
+ public static function build($component, array $options = [])
{
$name = empty($options['lowercase']) ?
$component->name : strtolower($component->name);
diff --git a/src/Components/Expression.php b/src/Components/Expression.php
index 2cf119b..bf97937 100644
--- a/src/Components/Expression.php
+++ b/src/Components/Expression.php
@@ -1,9 +1,9 @@
<?php
-
/**
* Parses a reference to an expression (column, table or database name, function
* call, mathematical expression, etc.).
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Components;
@@ -16,10 +16,6 @@ use PhpMyAdmin\SqlParser\TokensList;
/**
* Parses a reference to an expression (column, table or database name, function
* call, mathematical expression, etc.).
- *
- * @category Components
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class Expression extends Component
{
@@ -28,7 +24,7 @@ class Expression extends Component
*
* @var array
*/
- private static $ALLOWED_KEYWORDS = array(
+ private static $ALLOWED_KEYWORDS = [
'AS' => 1,
'DUAL' => 1,
'NULL' => 1,
@@ -39,8 +35,8 @@ class Expression extends Component
'OR' => 1,
'XOR' => 1,
'NOT' => 1,
- 'MOD' => 1
- );
+ 'MOD' => 1,
+ ];
/**
* The name of this database.
@@ -92,8 +88,6 @@ class Expression extends Component
public $subquery;
/**
- * Constructor.
- *
* Syntax:
* new Expression('expr')
* new Expression('expr', 'alias')
@@ -155,9 +149,9 @@ class Expression extends Component
*
* @return Expression|null
*/
- public static function parse(Parser $parser, TokensList $list, array $options = array())
+ public static function parse(Parser $parser, TokensList $list, array $options = [])
{
- $ret = new self();
+ $ret = new static();
/**
* Whether current tokens make an expression or a table reference.
@@ -192,10 +186,10 @@ class Expression extends Component
*
* @var Token[]
*/
- $prev = array(
+ $prev = [
+ null,
null,
- null
- );
+ ];
// When a field is parsed, no parentheses are expected.
if (! empty($options['parseField'])) {
@@ -269,7 +263,7 @@ class Expression extends Component
continue;
}
$isExpr = true;
- } elseif ($brackets === 0 && strlen($ret->expr) > 0 && ! $alias) {
+ } elseif ($brackets === 0 && strlen((string) $ret->expr) > 0 && ! $alias) {
/* End of expression */
break;
}
@@ -413,7 +407,7 @@ class Expression extends Component
}
// White-spaces might be added at the end.
- $ret->expr = trim($ret->expr);
+ $ret->expr = trim((string) $ret->expr);
if ($ret->expr === '') {
return null;
@@ -430,16 +424,16 @@ class Expression extends Component
*
* @return string
*/
- public static function build($component, array $options = array())
+ public static function build($component, array $options = [])
{
if (is_array($component)) {
return implode(', ', $component);
}
- if ($component->expr !== '' && ! is_null($component->expr)) {
+ if ($component->expr !== '' && $component->expr !== null) {
$ret = $component->expr;
} else {
- $fields = array();
+ $fields = [];
if (isset($component->database) && ($component->database !== '')) {
$fields[] = $component->database;
}
diff --git a/src/Components/ExpressionArray.php b/src/Components/ExpressionArray.php
index cdec66b..186693d 100644
--- a/src/Components/ExpressionArray.php
+++ b/src/Components/ExpressionArray.php
@@ -1,8 +1,8 @@
<?php
-
/**
* Parses a list of expressions delimited by a comma.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Components;
@@ -13,10 +13,6 @@ use PhpMyAdmin\SqlParser\TokensList;
/**
* Parses a list of expressions delimited by a comma.
- *
- * @category Keywords
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class ExpressionArray extends Component
{
@@ -27,9 +23,9 @@ class ExpressionArray extends Component
*
* @return Expression[]
*/
- public static function parse(Parser $parser, TokensList $list, array $options = array())
+ public static function parse(Parser $parser, TokensList $list, array $options = [])
{
- $ret = array();
+ $ret = [];
/**
* The state of the parser.
@@ -115,9 +111,9 @@ class ExpressionArray extends Component
*
* @return string
*/
- public static function build($component, array $options = array())
+ public static function build($component, array $options = [])
{
- $ret = array();
+ $ret = [];
foreach ($component as $frag) {
$ret[] = $frag::build($frag);
}
diff --git a/src/Components/FunctionCall.php b/src/Components/FunctionCall.php
index 8334676..b41e6b2 100644
--- a/src/Components/FunctionCall.php
+++ b/src/Components/FunctionCall.php
@@ -1,8 +1,8 @@
<?php
-
/**
* Parses a function call.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Components;
@@ -13,10 +13,6 @@ use PhpMyAdmin\SqlParser\TokensList;
/**
* Parses a function call.
- *
- * @category Keywords
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class FunctionCall extends Component
{
@@ -35,8 +31,6 @@ class FunctionCall extends Component
public $parameters;
/**
- * Constructor.
- *
* @param string $name the name of the function to be called
* @param array|ArrayObj $parameters the parameters of this function
*/
@@ -57,9 +51,9 @@ class FunctionCall extends Component
*
* @return FunctionCall
*/
- public static function parse(Parser $parser, TokensList $list, array $options = array())
+ public static function parse(Parser $parser, TokensList $list, array $options = [])
{
- $ret = new self();
+ $ret = new static();
/**
* The state of the parser.
@@ -112,7 +106,7 @@ class FunctionCall extends Component
*
* @return string
*/
- public static function build($component, array $options = array())
+ public static function build($component, array $options = [])
{
return $component->name . $component->parameters;
}
diff --git a/src/Components/GroupKeyword.php b/src/Components/GroupKeyword.php
index c782288..888fb89 100644
--- a/src/Components/GroupKeyword.php
+++ b/src/Components/GroupKeyword.php
@@ -1,8 +1,8 @@
<?php
-
/**
* `GROUP BY` keyword parser.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Components;
@@ -13,13 +13,11 @@ use PhpMyAdmin\SqlParser\TokensList;
/**
* `GROUP BY` keyword parser.
- *
- * @category Keywords
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class GroupKeyword extends Component
{
+ public $type;
+
/**
* The expression that is used for grouping.
*
@@ -28,8 +26,6 @@ class GroupKeyword extends Component
public $expr;
/**
- * Constructor.
- *
* @param Expression $expr the expression that we are sorting by
*/
public function __construct($expr = null)
@@ -44,11 +40,11 @@ class GroupKeyword extends Component
*
* @return GroupKeyword[]
*/
- public static function parse(Parser $parser, TokensList $list, array $options = array())
+ public static function parse(Parser $parser, TokensList $list, array $options = [])
{
- $ret = array();
+ $ret = [];
- $expr = new self();
+ $expr = new static();
/**
* The state of the parser.
@@ -96,7 +92,7 @@ class GroupKeyword extends Component
if (! empty($expr->expr)) {
$ret[] = $expr;
}
- $expr = new self();
+ $expr = new static();
$state = 0;
} else {
break;
@@ -120,12 +116,12 @@ class GroupKeyword extends Component
*
* @return string
*/
- public static function build($component, array $options = array())
+ public static function build($component, array $options = [])
{
if (is_array($component)) {
return implode(', ', $component);
}
- return trim($component->expr);
+ return trim((string) $component->expr);
}
}
diff --git a/src/Components/IndexHint.php b/src/Components/IndexHint.php
index 254152e..9b2f44e 100644
--- a/src/Components/IndexHint.php
+++ b/src/Components/IndexHint.php
@@ -1,8 +1,8 @@
<?php
-
/**
* Parses an Index hint.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Components;
@@ -13,10 +13,6 @@ use PhpMyAdmin\SqlParser\TokensList;
/**
* Parses an Index hint.
- *
- * @category Components
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class IndexHint extends Component
{
@@ -46,17 +42,15 @@ class IndexHint extends Component
*
* @var array
*/
- public $indexes = array();
+ public $indexes = [];
/**
- * Constructor.
- *
* @param string $type the type of hint (USE/FORCE/IGNORE)
* @param string $indexOrKey What the hint is for (INDEX/KEY)
* @param string $for the clause for which this hint is (JOIN/ORDER BY/GROUP BY)
- * @param string $indexes List of indexes in this hint
+ * @param array $indexes List of indexes in this hint
*/
- public function __construct(string $type = null, string $indexOrKey = null, string $for = null, array $indexes = array())
+ public function __construct(string $type = null, string $indexOrKey = null, string $for = null, array $indexes = [])
{
$this->type = $type;
$this->indexOrKey = $indexOrKey;
@@ -71,10 +65,10 @@ class IndexHint extends Component
*
* @return IndexHint|Component[]
*/
- public static function parse(Parser $parser, TokensList $list, array $options = array())
+ public static function parse(Parser $parser, TokensList $list, array $options = [])
{
- $ret = array();
- $expr = new self();
+ $ret = [];
+ $expr = new static();
$expr->type = isset($options['type']) ? $options['type'] : null;
/**
* The state of the parser.
@@ -86,6 +80,7 @@ class IndexHint extends Component
* 2 -------------------- [ expr_list ] --------------------> 0
* 3 -------------- [ JOIN/GROUP BY/ORDER BY ] -------------> 4
* 4 -------------------- [ expr_list ] --------------------> 0
+ *
* @var int
*/
$state = 0;
@@ -143,7 +138,7 @@ class IndexHint extends Component
$expr->indexes = ExpressionArray::parse($parser, $list);
$state = 0;
$ret[] = $expr;
- $expr = new self();
+ $expr = new static();
}
break;
case 3:
@@ -163,7 +158,7 @@ class IndexHint extends Component
$expr->indexes = ExpressionArray::parse($parser, $list);
$state = 0;
$ret[] = $expr;
- $expr = new self();
+ $expr = new static();
break;
}
}
@@ -173,12 +168,12 @@ class IndexHint extends Component
}
/**
- * @param ArrayObj|ArrayObj[] $component the component to be built
- * @param array $options parameters for building
+ * @param IndexHint|IndexHint[] $component the component to be built
+ * @param array $options parameters for building
*
* @return string
*/
- public static function build($component, array $options = array())
+ public static function build($component, array $options = [])
{
if (is_array($component)) {
return implode(' ', $component);
diff --git a/src/Components/IntoKeyword.php b/src/Components/IntoKeyword.php
index dea5d9d..c3f8a43 100644
--- a/src/Components/IntoKeyword.php
+++ b/src/Components/IntoKeyword.php
@@ -1,8 +1,8 @@
<?php
-
/**
* `INTO` keyword parser.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Components;
@@ -13,10 +13,6 @@ use PhpMyAdmin\SqlParser\TokensList;
/**
* `INTO` keyword parser.
- *
- * @category Keywords
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class IntoKeyword extends Component
{
@@ -25,37 +21,37 @@ class IntoKeyword extends Component
*
* @var array
*/
- public static $FIELDS_OPTIONS = array(
- 'TERMINATED BY' => array(
+ public static $FIELDS_OPTIONS = [
+ 'TERMINATED BY' => [
1,
'expr',
- ),
+ ],
'OPTIONALLY' => 2,
- 'ENCLOSED BY' => array(
+ 'ENCLOSED BY' => [
3,
'expr',
- ),
- 'ESCAPED BY' => array(
+ ],
+ 'ESCAPED BY' => [
4,
'expr',
- )
- );
+ ],
+ ];
/**
* LINES Options for `SELECT...INTO` statements.
*
* @var array
*/
- public static $LINES_OPTIONS = array(
- 'STARTING BY' => array(
+ public static $LINES_OPTIONS = [
+ 'STARTING BY' => [
1,
'expr',
- ),
- 'TERMINATED BY' => array(
+ ],
+ 'TERMINATED BY' => [
2,
'expr',
- )
- );
+ ],
+ ];
/**
* Type of target (OUTFILE or SYMBOL).
@@ -88,9 +84,9 @@ class IntoKeyword extends Component
/**
* Options for FIELDS/COLUMNS keyword.
*
- * @var OptionsArray
- *
* @see static::$FIELDS_OPTIONS
+ *
+ * @var OptionsArray
*/
public $fields_options;
@@ -104,15 +100,13 @@ class IntoKeyword extends Component
/**
* Options for OPTIONS keyword.
*
- * @var OptionsArray
- *
* @see static::$LINES_OPTIONS
+ *
+ * @var OptionsArray
*/
public $lines_options;
/**
- * Constructor.
- *
* @param string $type type of destination (may be OUTFILE)
* @param string|Expression $dest actual destination
* @param array $columns column list of destination
@@ -143,9 +137,9 @@ class IntoKeyword extends Component
*
* @return IntoKeyword
*/
- public static function parse(Parser $parser, TokensList $list, array $options = array())
+ public static function parse(Parser $parser, TokensList $list, array $options = [])
{
- $ret = new self();
+ $ret = new static();
/**
* The state of the parser.
@@ -203,10 +197,10 @@ class IntoKeyword extends Component
$ret->dest = Expression::parse(
$parser,
$list,
- array(
+ [
'parseField' => 'table',
- 'breakOnAlias' => true
- )
+ 'breakOnAlias' => true,
+ ]
);
} else {
$ret->values = ExpressionArray::parse($parser, $list);
@@ -269,7 +263,7 @@ class IntoKeyword extends Component
*
* @return string
*/
- public static function build($component, array $options = array())
+ public static function build($component, array $options = [])
{
if ($component->dest instanceof Expression) {
$columns = ! empty($component->columns) ? '(`' . implode('`, `', $component->columns) . '`)' : '';
@@ -287,7 +281,7 @@ class IntoKeyword extends Component
$ret .= ' ' . $fields_options_str;
}
- $lines_options_str = OptionsArray::build($component->lines_options, array('expr' => true));
+ $lines_options_str = OptionsArray::build($component->lines_options, ['expr' => true]);
if (trim($lines_options_str) !== '') {
$ret .= ' LINES ' . $lines_options_str;
}
diff --git a/src/Components/JoinKeyword.php b/src/Components/JoinKeyword.php
index afc62ba..91bab01 100644
--- a/src/Components/JoinKeyword.php
+++ b/src/Components/JoinKeyword.php
@@ -1,8 +1,8 @@
<?php
-
/**
* `JOIN` keyword parser.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Components;
@@ -13,10 +13,6 @@ use PhpMyAdmin\SqlParser\TokensList;
/**
* `JOIN` keyword parser.
- *
- * @category Keywords
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class JoinKeyword extends Component
{
@@ -25,7 +21,7 @@ class JoinKeyword extends Component
*
* @var array
*/
- public static $JOINS = array(
+ public static $JOINS = [
'CROSS JOIN' => 'CROSS',
'FULL JOIN' => 'FULL',
'FULL OUTER JOIN' => 'FULL',
@@ -40,8 +36,8 @@ class JoinKeyword extends Component
'NATURAL RIGHT JOIN' => 'NATURAL RIGHT',
'NATURAL LEFT OUTER JOIN' => 'NATURAL LEFT OUTER',
'NATURAL RIGHT OUTER JOIN' => 'NATURAL RIGHT OUTER',
- 'STRAIGHT_JOIN' => 'STRAIGHT'
- );
+ 'STRAIGHT_JOIN' => 'STRAIGHT',
+ ];
/**
* Type of this join.
@@ -74,14 +70,12 @@ class JoinKeyword extends Component
public $using;
/**
- * Constructor.
+ * @see JoinKeyword::$JOINS
*
* @param string $type Join type
* @param Expression $expr join expression
* @param Condition[] $on join conditions
* @param ArrayObj $using columns joined
- *
- * @see JoinKeyword::$JOINS
*/
public function __construct($type = null, $expr = null, $on = null, $using = null)
{
@@ -98,11 +92,11 @@ class JoinKeyword extends Component
*
* @return JoinKeyword[]
*/
- public static function parse(Parser $parser, TokensList $list, array $options = array())
+ public static function parse(Parser $parser, TokensList $list, array $options = [])
{
- $ret = array();
+ $ret = [];
- $expr = new self();
+ $expr = new static();
/**
* The state of the parser.
@@ -159,7 +153,7 @@ class JoinKeyword extends Component
break;
}
} elseif ($state === 1) {
- $expr->expr = Expression::parse($parser, $list, array('field' => 'table'));
+ $expr->expr = Expression::parse($parser, $list, ['field' => 'table']);
$state = 2;
} elseif ($state === 2) {
if ($token->type === Token::TYPE_KEYWORD) {
@@ -174,7 +168,7 @@ class JoinKeyword extends Component
if (! empty(static::$JOINS[$token->keyword])
) {
$ret[] = $expr;
- $expr = new self();
+ $expr = new static();
$expr->type = static::$JOINS[$token->keyword];
$state = 1;
} else {
@@ -187,12 +181,12 @@ class JoinKeyword extends Component
} elseif ($state === 3) {
$expr->on = Condition::parse($parser, $list);
$ret[] = $expr;
- $expr = new self();
+ $expr = new static();
$state = 0;
} elseif ($state === 4) {
$expr->using = ArrayObj::parse($parser, $list);
$ret[] = $expr;
- $expr = new self();
+ $expr = new static();
$state = 0;
}
}
@@ -212,9 +206,9 @@ class JoinKeyword extends Component
*
* @return string
*/
- public static function build($component, array $options = array())
+ public static function build($component, array $options = [])
{
- $ret = array();
+ $ret = [];
foreach ($component as $c) {
$ret[] = array_search($c->type, static::$JOINS) . ' ' . $c->expr
. (! empty($c->on)
diff --git a/src/Components/Key.php b/src/Components/Key.php
index bf87e54..669a7c0 100644
--- a/src/Components/Key.php
+++ b/src/Components/Key.php
@@ -1,8 +1,8 @@
<?php
-
/**
* Parses the definition of a key.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Components;
@@ -16,10 +16,6 @@ use PhpMyAdmin\SqlParser\TokensList;
* Parses the definition of a key.
*
* Used for parsing `CREATE TABLE` statement.
- *
- * @category Components
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class Key extends Component
{
@@ -28,24 +24,24 @@ class Key extends Component
*
* @var array
*/
- public static $KEY_OPTIONS = array(
- 'KEY_BLOCK_SIZE' => array(
+ public static $KEY_OPTIONS = [
+ 'KEY_BLOCK_SIZE' => [
1,
'var',
- ),
- 'USING' => array(
+ ],
+ 'USING' => [
2,
'var',
- ),
- 'WITH PARSER' => array(
+ ],
+ 'WITH PARSER' => [
3,
'var',
- ),
- 'COMMENT' => array(
+ ],
+ 'COMMENT' => [
4,
'var=',
- )
- );
+ ],
+ ];
/**
* The name of this key.
@@ -76,8 +72,6 @@ class Key extends Component
public $options;
/**
- * Constructor.
- *
* @param string $name the name of the key
* @param array $columns the columns covered by this key
* @param string $type the type of this key
@@ -85,7 +79,7 @@ class Key extends Component
*/
public function __construct(
$name = null,
- array $columns = array(),
+ array $columns = [],
$type = null,
$options = null
) {
@@ -102,16 +96,16 @@ class Key extends Component
*
* @return Key
*/
- public static function parse(Parser $parser, TokensList $list, array $options = array())
+ public static function parse(Parser $parser, TokensList $list, array $options = [])
{
- $ret = new self();
+ $ret = new static();
/**
* Last parsed column.
*
* @var array
*/
- $lastColumn = array();
+ $lastColumn = [];
/**
* The state of the parser.
@@ -161,10 +155,10 @@ class Key extends Component
if ($token->value === '(') {
$state = 3;
} elseif (($token->value === ',') || ($token->value === ')')) {
- $state = ($token->value === ',') ? 2 : 4;
+ $state = $token->value === ',' ? 2 : 4;
if (! empty($lastColumn)) {
$ret->columns[] = $lastColumn;
- $lastColumn = array();
+ $lastColumn = [];
}
}
} else {
@@ -194,14 +188,14 @@ class Key extends Component
*
* @return string
*/
- public static function build($component, array $options = array())
+ public static function build($component, array $options = [])
{
$ret = $component->type . ' ';
if (! empty($component->name)) {
$ret .= Context::escape($component->name) . ' ';
}
- $columns = array();
+ $columns = [];
foreach ($component->columns as $column) {
$tmp = Context::escape($column['name']);
if (isset($column['length'])) {
diff --git a/src/Components/Limit.php b/src/Components/Limit.php
index a3903b5..16dad29 100644
--- a/src/Components/Limit.php
+++ b/src/Components/Limit.php
@@ -1,8 +1,8 @@
<?php
-
/**
* `LIMIT` keyword parser.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Components;
@@ -13,10 +13,6 @@ use PhpMyAdmin\SqlParser\TokensList;
/**
* `LIMIT` keyword parser.
- *
- * @category Keywords
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class Limit extends Component
{
@@ -35,8 +31,6 @@ class Limit extends Component
public $rowCount;
/**
- * Constructor.
- *
* @param int $rowCount the row count
* @param int $offset the offset
*/
@@ -53,9 +47,9 @@ class Limit extends Component
*
* @return Limit
*/
- public static function parse(Parser $parser, TokensList $list, array $options = array())
+ public static function parse(Parser $parser, TokensList $list, array $options = [])
{
- $ret = new self();
+ $ret = new static();
$offset = false;
@@ -126,7 +120,7 @@ class Limit extends Component
*
* @return string
*/
- public static function build($component, array $options = array())
+ public static function build($component, array $options = [])
{
return $component->offset . ', ' . $component->rowCount;
}
diff --git a/src/Components/LockExpression.php b/src/Components/LockExpression.php
index 1a2479d..6184f2e 100644
--- a/src/Components/LockExpression.php
+++ b/src/Components/LockExpression.php
@@ -1,8 +1,8 @@
<?php
-
/**
* Parses a reference to a LOCK expression.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Components;
@@ -13,10 +13,6 @@ use PhpMyAdmin\SqlParser\TokensList;
/**
* Parses a reference to a LOCK expression.
- *
- * @category Components
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class LockExpression extends Component
{
@@ -39,11 +35,11 @@ class LockExpression extends Component
* @param TokensList $list the list of tokens that are being parsed
* @param array $options parameters for parsing
*
- * @return CaseExpression
+ * @return LockExpression
*/
- public static function parse(Parser $parser, TokensList $list, array $options = array())
+ public static function parse(Parser $parser, TokensList $list, array $options = [])
{
- $ret = new self();
+ $ret = new static();
/**
* The state of the parser.
@@ -77,7 +73,7 @@ class LockExpression extends Component
}
if ($state === 0) {
- $ret->table = Expression::parse($parser, $list, array('parseField' => 'table'));
+ $ret->table = Expression::parse($parser, $list, ['parseField' => 'table']);
$state = 1;
} elseif ($state === 1) {
// parse lock type
@@ -103,7 +99,7 @@ class LockExpression extends Component
*
* @return string
*/
- public static function build($component, array $options = array())
+ public static function build($component, array $options = [])
{
if (is_array($component)) {
return implode(', ', $component);
diff --git a/src/Components/OptionsArray.php b/src/Components/OptionsArray.php
index 69aabb3..da73dc6 100644
--- a/src/Components/OptionsArray.php
+++ b/src/Components/OptionsArray.php
@@ -1,8 +1,8 @@
<?php
-
/**
* Parses a list of options.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Components;
@@ -14,10 +14,6 @@ use PhpMyAdmin\SqlParser\Translator;
/**
* Parses a list of options.
- *
- * @category Components
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class OptionsArray extends Component
{
@@ -26,16 +22,14 @@ class OptionsArray extends Component
*
* @var array
*/
- public $options = array();
+ public $options = [];
/**
- * Constructor.
- *
* @param array $options The array of options. Options that have a value
* must be an array with at least two keys `name` and
* `expr` or `value`.
*/
- public function __construct(array $options = array())
+ public function __construct(array $options = [])
{
$this->options = $options;
}
@@ -47,9 +41,9 @@ class OptionsArray extends Component
*
* @return OptionsArray
*/
- public static function parse(Parser $parser, TokensList $list, array $options = array())
+ public static function parse(Parser $parser, TokensList $list, array $options = [])
{
- $ret = new self();
+ $ret = new static();
/**
* The ID that will be assigned to duplicate options.
@@ -167,7 +161,7 @@ class OptionsArray extends Component
// This is only the beginning. The value is parsed in state
// 1 and 2. State 1 is used to skip the first equals sign
// and state 2 to parse the actual value.
- $ret->options[$lastOptionId] = array(
+ $ret->options[$lastOptionId] = [
// @var string The name of the option.
'name' => $token->value,
// @var bool Whether it contains an equal sign.
@@ -176,8 +170,8 @@ class OptionsArray extends Component
// @var string Raw value.
'expr' => '',
// @var string Processed value.
- 'value' => ''
- );
+ 'value' => '',
+ ];
$state = 1;
} elseif ($lastOption[1] === 'expr' || $lastOption[1] === 'expr=') {
// This is a keyword that is followed by an expression.
@@ -185,15 +179,15 @@ class OptionsArray extends Component
// Skipping this option in order to parse the expression.
++$list->idx;
- $ret->options[$lastOptionId] = array(
+ $ret->options[$lastOptionId] = [
// @var string The name of the option.
'name' => $token->value,
// @var bool Whether it contains an equal sign.
// This is used by the builder to rebuild it.
'equals' => $lastOption[1] === 'expr=',
// @var Expression The parsed expression.
- 'expr' => ''
- );
+ 'expr' => '',
+ ];
$state = 1;
}
} elseif ($state === 1) {
@@ -211,7 +205,7 @@ class OptionsArray extends Component
$ret->options[$lastOptionId]['expr'] = Expression::parse(
$parser,
$list,
- empty($lastOption[2]) ? array() : $lastOption[2]
+ empty($lastOption[2]) ? [] : $lastOption[2]
);
$ret->options[$lastOptionId]['value']
= $ret->options[$lastOptionId]['expr']->expr;
@@ -276,19 +270,19 @@ class OptionsArray extends Component
*
* @return string
*/
- public static function build($component, array $options = array())
+ public static function build($component, array $options = [])
{
if (empty($component->options)) {
return '';
}
- $options = array();
+ $options = [];
foreach ($component->options as $option) {
if (! is_array($option)) {
$options[] = $option;
} else {
$options[] = $option['name']
- . ((! empty($option['equals']) && $option['equals']) ? '=' : ' ')
+ . (! empty($option['equals']) && $option['equals'] ? '=' : ' ')
. (! empty($option['expr']) ? $option['expr'] : $option['value']);
}
}
diff --git a/src/Components/OrderKeyword.php b/src/Components/OrderKeyword.php
index 1e77f57..966758e 100644
--- a/src/Components/OrderKeyword.php
+++ b/src/Components/OrderKeyword.php
@@ -1,8 +1,8 @@
<?php
-
/**
* `ORDER BY` keyword parser.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Components;
@@ -13,10 +13,6 @@ use PhpMyAdmin\SqlParser\TokensList;
/**
* `ORDER BY` keyword parser.
- *
- * @category Keywords
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class OrderKeyword extends Component
{
@@ -35,8 +31,6 @@ class OrderKeyword extends Component
public $type;
/**
- * Constructor.
- *
* @param Expression $expr the expression that we are sorting by
* @param string $type the sorting type
*/
@@ -53,11 +47,11 @@ class OrderKeyword extends Component
*
* @return OrderKeyword[]
*/
- public static function parse(Parser $parser, TokensList $list, array $options = array())
+ public static function parse(Parser $parser, TokensList $list, array $options = [])
{
- $ret = array();
+ $ret = [];
- $expr = new self();
+ $expr = new static();
/**
* The state of the parser.
@@ -105,7 +99,7 @@ class OrderKeyword extends Component
if (! empty($expr->expr)) {
$ret[] = $expr;
}
- $expr = new self();
+ $expr = new static();
$state = 0;
} else {
break;
@@ -129,7 +123,7 @@ class OrderKeyword extends Component
*
* @return string
*/
- public static function build($component, array $options = array())
+ public static function build($component, array $options = [])
{
if (is_array($component)) {
return implode(', ', $component);
diff --git a/src/Components/ParameterDefinition.php b/src/Components/ParameterDefinition.php
index 831ee4b..d7aa293 100644
--- a/src/Components/ParameterDefinition.php
+++ b/src/Components/ParameterDefinition.php
@@ -1,8 +1,8 @@
<?php
-
/**
* The definition of a parameter of a function or procedure.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Components;
@@ -14,10 +14,6 @@ use PhpMyAdmin\SqlParser\TokensList;
/**
* The definition of a parameter of a function or procedure.
- *
- * @category Components
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class ParameterDefinition extends Component
{
@@ -43,8 +39,6 @@ class ParameterDefinition extends Component
public $type;
/**
- * Constructor.
- *
* @param string $name parameter's name
* @param string $inOut parameter's directional type (IN / OUT or None)
* @param DataType $type parameter's type
@@ -63,11 +57,11 @@ class ParameterDefinition extends Component
*
* @return ParameterDefinition[]
*/
- public static function parse(Parser $parser, TokensList $list, array $options = array())
+ public static function parse(Parser $parser, TokensList $list, array $options = [])
{
- $ret = array();
+ $ret = [];
- $expr = new self();
+ $expr = new static();
/**
* The state of the parser.
@@ -127,7 +121,7 @@ class ParameterDefinition extends Component
$state = 3;
} elseif ($state === 3) {
$ret[] = $expr;
- $expr = new self();
+ $expr = new static();
if ($token->value === ',') {
$state = 1;
} elseif ($token->value === ')') {
@@ -153,7 +147,7 @@ class ParameterDefinition extends Component
*
* @return string
*/
- public static function build($component, array $options = array())
+ public static function build($component, array $options = [])
{
if (is_array($component)) {
return '(' . implode(', ', $component) . ')';
diff --git a/src/Components/PartitionDefinition.php b/src/Components/PartitionDefinition.php
index 53da148..e67e92f 100644
--- a/src/Components/PartitionDefinition.php
+++ b/src/Components/PartitionDefinition.php
@@ -1,10 +1,10 @@
<?php
-
/**
* Parses the create definition of a partition.
*
* Used for parsing `CREATE TABLE` statement.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Components;
@@ -17,10 +17,6 @@ use PhpMyAdmin\SqlParser\TokensList;
* Parses the create definition of a partition.
*
* Used for parsing `CREATE TABLE` statement.
- *
- * @category Components
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class PartitionDefinition extends Component
{
@@ -29,44 +25,44 @@ class PartitionDefinition extends Component
*
* @var array
*/
- public static $OPTIONS = array(
- 'STORAGE ENGINE' => array(
+ public static $OPTIONS = [
+ 'STORAGE ENGINE' => [
1,
'var',
- ),
- 'ENGINE' => array(
+ ],
+ 'ENGINE' => [
1,
'var',
- ),
- 'COMMENT' => array(
+ ],
+ 'COMMENT' => [
2,
'var',
- ),
- 'DATA DIRECTORY' => array(
+ ],
+ 'DATA DIRECTORY' => [
3,
'var',
- ),
- 'INDEX DIRECTORY' => array(
+ ],
+ 'INDEX DIRECTORY' => [
4,
'var',
- ),
- 'MAX_ROWS' => array(
+ ],
+ 'MAX_ROWS' => [
5,
'var',
- ),
- 'MIN_ROWS' => array(
+ ],
+ 'MIN_ROWS' => [
6,
'var',
- ),
- 'TABLESPACE' => array(
+ ],
+ 'TABLESPACE' => [
7,
'var',
- ),
- 'NODEGROUP' => array(
+ ],
+ 'NODEGROUP' => [
8,
'var',
- )
- );
+ ],
+ ];
/**
* Whether this entry is a subpartition or a partition.
@@ -117,9 +113,9 @@ class PartitionDefinition extends Component
*
* @return PartitionDefinition
*/
- public static function parse(Parser $parser, TokensList $list, array $options = array())
+ public static function parse(Parser $parser, TokensList $list, array $options = [])
{
- $ret = new self();
+ $ret = new static();
/**
* The state of the parser.
@@ -196,10 +192,10 @@ class PartitionDefinition extends Component
$ret->expr = Expression::parse(
$parser,
$list,
- array(
+ [
'parenthesesDelimited' => true,
- 'breakOnAlias' => true
- )
+ 'breakOnAlias' => true,
+ ]
);
}
$state = 5;
@@ -211,9 +207,9 @@ class PartitionDefinition extends Component
$ret->subpartitions = ArrayObj::parse(
$parser,
$list,
- array(
- 'type' => 'PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition'
- )
+ [
+ 'type' => 'PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition',
+ ]
);
++$list->idx;
}
@@ -232,7 +228,7 @@ class PartitionDefinition extends Component
*
* @return string
*/
- public static function build($component, array $options = array())
+ public static function build($component, array $options = [])
{
if (is_array($component)) {
return "(\n" . implode(",\n", $component) . "\n)";
@@ -247,7 +243,7 @@ class PartitionDefinition extends Component
return trim(
'PARTITION ' . $component->name
. (empty($component->type) ? '' : ' VALUES ' . $component->type . ' ' . $component->expr . ' ')
- . ((! empty($component->options) && ! empty($component->type)) ? '' : ' ') . $component->options . $subpartitions
+ . (! empty($component->options) && ! empty($component->type) ? '' : ' ') . $component->options . $subpartitions
);
}
}
diff --git a/src/Components/Reference.php b/src/Components/Reference.php
index 38fc060..759f3ad 100644
--- a/src/Components/Reference.php
+++ b/src/Components/Reference.php
@@ -1,8 +1,8 @@
<?php
-
/**
* `REFERENCES` keyword parser.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Components;
@@ -14,10 +14,6 @@ use PhpMyAdmin\SqlParser\TokensList;
/**
* `REFERENCES` keyword parser.
- *
- * @category Keywords
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class Reference extends Component
{
@@ -26,20 +22,20 @@ class Reference extends Component
*
* @var array
*/
- public static $REFERENCES_OPTIONS = array(
- 'MATCH' => array(
+ public static $REFERENCES_OPTIONS = [
+ 'MATCH' => [
1,
'var',
- ),
- 'ON DELETE' => array(
+ ],
+ 'ON DELETE' => [
2,
'var',
- ),
- 'ON UPDATE' => array(
+ ],
+ 'ON UPDATE' => [
3,
'var',
- )
- );
+ ],
+ ];
/**
* The referenced table.
@@ -63,13 +59,11 @@ class Reference extends Component
public $options;
/**
- * Constructor.
- *
* @param Expression $table the name of the table referenced
* @param array $columns the columns referenced
* @param OptionsArray $options the options
*/
- public function __construct($table = null, array $columns = array(), $options = null)
+ public function __construct($table = null, array $columns = [], $options = null)
{
$this->table = $table;
$this->columns = $columns;
@@ -83,9 +77,9 @@ class Reference extends Component
*
* @return Reference
*/
- public static function parse(Parser $parser, TokensList $list, array $options = array())
+ public static function parse(Parser $parser, TokensList $list, array $options = [])
{
- $ret = new self();
+ $ret = new static();
/**
* The state of the parser.
@@ -124,10 +118,10 @@ class Reference extends Component
$ret->table = Expression::parse(
$parser,
$list,
- array(
+ [
'parseField' => 'table',
- 'breakOnAlias' => true
- )
+ 'breakOnAlias' => true,
+ ]
);
$state = 1;
} elseif ($state === 1) {
@@ -151,7 +145,7 @@ class Reference extends Component
*
* @return string
*/
- public static function build($component, array $options = array())
+ public static function build($component, array $options = [])
{
return trim(
$component->table
diff --git a/src/Components/RenameOperation.php b/src/Components/RenameOperation.php
index bf6167b..a2a8d1f 100644
--- a/src/Components/RenameOperation.php
+++ b/src/Components/RenameOperation.php
@@ -1,8 +1,8 @@
<?php
-
/**
* `RENAME TABLE` keyword parser.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Components;
@@ -13,10 +13,6 @@ use PhpMyAdmin\SqlParser\TokensList;
/**
* `RENAME TABLE` keyword parser.
- *
- * @category Keywords
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class RenameOperation extends Component
{
@@ -35,8 +31,6 @@ class RenameOperation extends Component
public $new;
/**
- * Constructor.
- *
* @param Expression $old old expression
* @param Expression $new new expression containing new name
*/
@@ -53,11 +47,11 @@ class RenameOperation extends Component
*
* @return RenameOperation[]
*/
- public static function parse(Parser $parser, TokensList $list, array $options = array())
+ public static function parse(Parser $parser, TokensList $list, array $options = [])
{
- $ret = array();
+ $ret = [];
- $expr = new self();
+ $expr = new static();
/**
* The state of the parser.
@@ -99,10 +93,10 @@ class RenameOperation extends Component
$expr->old = Expression::parse(
$parser,
$list,
- array(
+ [
'breakOnAlias' => true,
- 'parseField' => 'table'
- )
+ 'parseField' => 'table',
+ ]
);
if (empty($expr->old)) {
$parser->error(
@@ -125,10 +119,10 @@ class RenameOperation extends Component
$expr->new = Expression::parse(
$parser,
$list,
- array(
+ [
'breakOnAlias' => true,
- 'parseField' => 'table'
- )
+ 'parseField' => 'table',
+ ]
);
if (empty($expr->new)) {
$parser->error(
@@ -140,7 +134,7 @@ class RenameOperation extends Component
} elseif ($state === 3) {
if (($token->type === Token::TYPE_OPERATOR) && ($token->value === ',')) {
$ret[] = $expr;
- $expr = new self();
+ $expr = new static();
$state = 0;
} else {
break;
@@ -171,7 +165,7 @@ class RenameOperation extends Component
*
* @return string
*/
- public static function build($component, array $options = array())
+ public static function build($component, array $options = [])
{
if (is_array($component)) {
return implode(', ', $component);
diff --git a/src/Components/SetOperation.php b/src/Components/SetOperation.php
index d27819c..1e44650 100644
--- a/src/Components/SetOperation.php
+++ b/src/Components/SetOperation.php
@@ -1,8 +1,8 @@
<?php
-
/**
* `SET` keyword parser.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Components;
@@ -13,10 +13,6 @@ use PhpMyAdmin\SqlParser\TokensList;
/**
* `SET` keyword parser.
- *
- * @category Keywords
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class SetOperation extends Component
{
@@ -35,8 +31,6 @@ class SetOperation extends Component
public $value;
/**
- * Constructor.
- *
* @param string $column Field's name..
* @param string $value new value
*/
@@ -53,11 +47,11 @@ class SetOperation extends Component
*
* @return SetOperation[]
*/
- public static function parse(Parser $parser, TokensList $list, array $options = array())
+ public static function parse(Parser $parser, TokensList $list, array $options = [])
{
- $ret = array();
+ $ret = [];
- $expr = new self();
+ $expr = new static();
/**
* The state of the parser.
@@ -118,18 +112,18 @@ class SetOperation extends Component
$tmp = Expression::parse(
$parser,
$list,
- array(
- 'breakOnAlias' => true
- )
+ [
+ 'breakOnAlias' => true,
+ ]
);
- if (is_null($tmp)) {
+ if ($tmp === null) {
$parser->error('Missing expression.', $token);
break;
}
$expr->column = trim($expr->column);
$expr->value = $tmp->expr;
$ret[] = $expr;
- $expr = new self();
+ $expr = new static();
$state = 0;
$commaLastSeenAt = null;
}
@@ -150,7 +144,7 @@ class SetOperation extends Component
*
* @return string
*/
- public static function build($component, array $options = array())
+ public static function build($component, array $options = [])
{
if (is_array($component)) {
return implode(', ', $component);
diff --git a/src/Components/UnionKeyword.php b/src/Components/UnionKeyword.php
index 6867615..55c9e29 100644
--- a/src/Components/UnionKeyword.php
+++ b/src/Components/UnionKeyword.php
@@ -1,8 +1,8 @@
<?php
-
/**
* `UNION` keyword builder.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Components;
@@ -10,10 +10,6 @@ use PhpMyAdmin\SqlParser\Component;
/**
* `UNION` keyword builder.
- *
- * @category Keywords
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class UnionKeyword extends Component
{
@@ -23,9 +19,9 @@ class UnionKeyword extends Component
*
* @return string
*/
- public static function build($component, array $options = array())
+ public static function build($component, array $options = [])
{
- $tmp = array();
+ $tmp = [];
foreach ($component as $componentPart) {
$tmp[] = $componentPart[0] . ' ' . $componentPart[1];
}
diff --git a/src/Context.php b/src/Context.php
index 93c1c76..138c5c5 100644
--- a/src/Context.php
+++ b/src/Context.php
@@ -1,11 +1,11 @@
<?php
-
/**
* Defines a context class that is later extended to define other contexts.
*
* A context is a collection of keywords, operators and functions used for
* parsing.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser;
@@ -13,10 +13,6 @@ use PhpMyAdmin\SqlParser\Exceptions\LoaderException;
/**
* Holds the configuration of the context that is currently used.
- *
- * @category Contexts
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
abstract class Context
{
@@ -86,14 +82,14 @@ abstract class Context
*
* @var array
*/
- public static $KEYWORDS = array();
+ public static $KEYWORDS = [];
/**
* List of operators and their flags.
*
* @var array
*/
- public static $OPERATORS = array(
+ public static $OPERATORS = [
// Some operators (*, =) may have ambiguous flags, because they depend on
// the context they are being used in.
// For example: 1. SELECT * FROM table; # SQL specific (wildcard)
@@ -137,8 +133,8 @@ abstract class Context
')' => 16,
'.' => 16,
',' => 16,
- ';' => 16
- );
+ ';' => 16,
+ ];
/**
* The mode of the MySQL server that will be used in lexing, parsing and
@@ -339,7 +335,7 @@ abstract class Context
if ($str[0] === '#') {
return Token::FLAG_COMMENT_BASH;
} elseif (($len > 1) && ($str[0] === '/') && ($str[1] === '*')) {
- return (($len > 2) && ($str[2] === '!')) ?
+ return ($len > 2) && ($str[2] === '!') ?
Token::FLAG_COMMENT_MYSQL_CMD : Token::FLAG_COMMENT_C;
} elseif (($len > 1) && ($str[0] === '*') && ($str[1] === '/')) {
return Token::FLAG_COMMENT_C;
@@ -385,7 +381,7 @@ abstract class Context
*/
public static function isNumber($str)
{
- return (($str >= '0') && ($str <= '9')) || ($str === '.')
+ return ($str >= '0') && ($str <= '9') || ($str === '.')
|| ($str === '-') || ($str === '+') || ($str === 'e') || ($str === 'E');
}
@@ -468,7 +464,7 @@ abstract class Context
* @param string $context name of the context or full class name that
* defines the context
*
- * @throws LoaderException if the specified context doesn't exist
+ * @throws LoaderException if the specified context doesn't exist.
*/
public static function load($context = '')
{
diff --git a/src/Contexts/ContextMariaDb100000.php b/src/Contexts/ContextMariaDb100000.php
index e4c368d..b6646bb 100644
--- a/src/Contexts/ContextMariaDb100000.php
+++ b/src/Contexts/ContextMariaDb100000.php
@@ -1,5 +1,4 @@
<?php
-
/**
* Context for MariaDB 10.0.
*
@@ -7,6 +6,7 @@
*
* @see https://mariadb.com/kb/en/the-mariadb-library/reserved-words/
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Contexts;
@@ -15,10 +15,6 @@ use PhpMyAdmin\SqlParser\Token;
/**
* Context for MariaDB 10.0.
- *
- * @category Contexts
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class ContextMariaDb100000 extends Context
{
@@ -33,7 +29,7 @@ class ContextMariaDb100000 extends Context
*
* @var array
*/
- public static $KEYWORDS = array(
+ public static $KEYWORDS = [
'AT' => 1, 'DO' => 1, 'IO' => 1, 'NO' => 1, 'XA' => 1,
'ANY' => 1, 'CPU' => 1, 'END' => 1, 'IPC' => 1, 'NDB' => 1, 'NEW' => 1,
'ONE' => 1, 'ROW' => 1,
@@ -311,6 +307,6 @@ class ContextMariaDb100000 extends Context
'CHAR' => 43,
'BINARY' => 43,
- 'INTERVAL' => 43
- );
+ 'INTERVAL' => 43,
+ ];
}
diff --git a/src/Contexts/ContextMariaDb100100.php b/src/Contexts/ContextMariaDb100100.php
index 26ce58b..9eca83a 100644
--- a/src/Contexts/ContextMariaDb100100.php
+++ b/src/Contexts/ContextMariaDb100100.php
@@ -1,5 +1,4 @@
<?php
-
/**
* Context for MariaDB 10.1.
*
@@ -7,6 +6,7 @@
*
* @see https://mariadb.com/kb/en/the-mariadb-library/reserved-words/
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Contexts;
@@ -15,10 +15,6 @@ use PhpMyAdmin\SqlParser\Token;
/**
* Context for MariaDB 10.1.
- *
- * @category Contexts
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class ContextMariaDb100100 extends Context
{
@@ -33,7 +29,7 @@ class ContextMariaDb100100 extends Context
*
* @var array
*/
- public static $KEYWORDS = array(
+ public static $KEYWORDS = [
'AT' => 1, 'DO' => 1, 'IO' => 1, 'NO' => 1, 'XA' => 1,
'ANY' => 1, 'CPU' => 1, 'END' => 1, 'IPC' => 1, 'NDB' => 1, 'NEW' => 1,
'ONE' => 1, 'ROW' => 1, 'XID' => 1,
@@ -360,6 +356,6 @@ class ContextMariaDb100100 extends Context
'CHAR' => 43,
'BINARY' => 43,
- 'INTERVAL' => 43
- );
+ 'INTERVAL' => 43,
+ ];
}
diff --git a/src/Contexts/ContextMariaDb100200.php b/src/Contexts/ContextMariaDb100200.php
index 911afe8..8f088aa 100644
--- a/src/Contexts/ContextMariaDb100200.php
+++ b/src/Contexts/ContextMariaDb100200.php
@@ -1,5 +1,4 @@
<?php
-
/**
* Context for MariaDB 10.2.
*
@@ -7,6 +6,7 @@
*
* @see https://mariadb.com/kb/en/the-mariadb-library/reserved-words/
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Contexts;
@@ -15,10 +15,6 @@ use PhpMyAdmin\SqlParser\Token;
/**
* Context for MariaDB 10.2.
- *
- * @category Contexts
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class ContextMariaDb100200 extends Context
{
@@ -33,7 +29,7 @@ class ContextMariaDb100200 extends Context
*
* @var array
*/
- public static $KEYWORDS = array(
+ public static $KEYWORDS = [
'AT' => 1, 'DO' => 1, 'IO' => 1, 'NO' => 1, 'XA' => 1,
'ANY' => 1, 'CPU' => 1, 'END' => 1, 'IPC' => 1, 'NDB' => 1, 'NEW' => 1,
'ONE' => 1, 'ROW' => 1, 'XID' => 1,
@@ -360,6 +356,6 @@ class ContextMariaDb100200 extends Context
'CHAR' => 43,
'BINARY' => 43,
- 'INTERVAL' => 43
- );
+ 'INTERVAL' => 43,
+ ];
}
diff --git a/src/Contexts/ContextMariaDb100300.php b/src/Contexts/ContextMariaDb100300.php
index e30ab04..c631731 100644
--- a/src/Contexts/ContextMariaDb100300.php
+++ b/src/Contexts/ContextMariaDb100300.php
@@ -1,5 +1,4 @@
<?php
-
/**
* Context for MariaDB 10.3.
*
@@ -7,6 +6,7 @@
*
* @see https://mariadb.com/kb/en/the-mariadb-library/reserved-words/
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Contexts;
@@ -15,10 +15,6 @@ use PhpMyAdmin\SqlParser\Token;
/**
* Context for MariaDB 10.3.
- *
- * @category Contexts
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class ContextMariaDb100300 extends Context
{
@@ -33,7 +29,7 @@ class ContextMariaDb100300 extends Context
*
* @var array
*/
- public static $KEYWORDS = array(
+ public static $KEYWORDS = [
'AT' => 1, 'DO' => 1, 'IO' => 1, 'NO' => 1, 'XA' => 1,
'ANY' => 1, 'CPU' => 1, 'END' => 1, 'IPC' => 1, 'NDB' => 1, 'NEW' => 1,
'ONE' => 1, 'ROW' => 1, 'XID' => 1,
@@ -360,6 +356,6 @@ class ContextMariaDb100300 extends Context
'CHAR' => 43,
'BINARY' => 43,
- 'INTERVAL' => 43
- );
+ 'INTERVAL' => 43,
+ ];
}
diff --git a/src/Contexts/ContextMySql50000.php b/src/Contexts/ContextMySql50000.php
index 63f12fe..7621623 100644
--- a/src/Contexts/ContextMySql50000.php
+++ b/src/Contexts/ContextMySql50000.php
@@ -1,5 +1,4 @@
<?php
-
/**
* Context for MySQL 5.0.
*
@@ -7,6 +6,7 @@
*
* @see https://dev.mysql.com/doc/refman/5.0/en/keywords.html
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Contexts;
@@ -15,10 +15,6 @@ use PhpMyAdmin\SqlParser\Token;
/**
* Context for MySQL 5.0.
- *
- * @category Contexts
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class ContextMySql50000 extends Context
{
@@ -33,7 +29,7 @@ class ContextMySql50000 extends Context
*
* @var array
*/
- public static $KEYWORDS = array(
+ public static $KEYWORDS = [
'DO' => 1, 'IO' => 1, 'NO' => 1, 'XA' => 1,
'ANY' => 1, 'BDB' => 1, 'CPU' => 1, 'END' => 1, 'IPC' => 1, 'NDB' => 1,
'NEW' => 1, 'ONE' => 1, 'ROW' => 1,
@@ -281,6 +277,6 @@ class ContextMySql50000 extends Context
'CHAR' => 43,
'BINARY' => 43,
- 'INTERVAL' => 43
- );
+ 'INTERVAL' => 43,
+ ];
}
diff --git a/src/Contexts/ContextMySql50100.php b/src/Contexts/ContextMySql50100.php
index 4b97896..dbf8f86 100644
--- a/src/Contexts/ContextMySql50100.php
+++ b/src/Contexts/ContextMySql50100.php
@@ -1,5 +1,4 @@
<?php
-
/**
* Context for MySQL 5.1.
*
@@ -7,6 +6,7 @@
*
* @see https://dev.mysql.com/doc/refman/5.1/en/keywords.html
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Contexts;
@@ -15,10 +15,6 @@ use PhpMyAdmin\SqlParser\Token;
/**
* Context for MySQL 5.1.
- *
- * @category Contexts
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class ContextMySql50100 extends Context
{
@@ -33,7 +29,7 @@ class ContextMySql50100 extends Context
*
* @var array
*/
- public static $KEYWORDS = array(
+ public static $KEYWORDS = [
'AT' => 1, 'DO' => 1, 'IO' => 1, 'NO' => 1, 'XA' => 1,
'ANY' => 1, 'BDB' => 1, 'CPU' => 1, 'END' => 1, 'IPC' => 1, 'NDB' => 1,
'NEW' => 1, 'ONE' => 1, 'ROW' => 1,
@@ -306,6 +302,6 @@ class ContextMySql50100 extends Context
'CHAR' => 43,
'BINARY' => 43,
- 'INTERVAL' => 43
- );
+ 'INTERVAL' => 43,
+ ];
}
diff --git a/src/Contexts/ContextMySql50500.php b/src/Contexts/ContextMySql50500.php
index 4d1de76..b5b0f26 100644
--- a/src/Contexts/ContextMySql50500.php
+++ b/src/Contexts/ContextMySql50500.php
@@ -1,5 +1,4 @@
<?php
-
/**
* Context for MySQL 5.5.
*
@@ -7,6 +6,7 @@
*
* @see https://dev.mysql.com/doc/refman/5.5/en/keywords.html
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Contexts;
@@ -15,10 +15,6 @@ use PhpMyAdmin\SqlParser\Token;
/**
* Context for MySQL 5.5.
- *
- * @category Contexts
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class ContextMySql50500 extends Context
{
@@ -33,7 +29,7 @@ class ContextMySql50500 extends Context
*
* @var array
*/
- public static $KEYWORDS = array(
+ public static $KEYWORDS = [
'AT' => 1, 'DO' => 1, 'IO' => 1, 'NO' => 1, 'XA' => 1,
'ANY' => 1, 'CPU' => 1, 'END' => 1, 'IPC' => 1, 'NDB' => 1, 'NEW' => 1,
'ONE' => 1, 'ROW' => 1,
@@ -311,6 +307,6 @@ class ContextMySql50500 extends Context
'CHAR' => 43,
'BINARY' => 43,
- 'INTERVAL' => 43
- );
+ 'INTERVAL' => 43,
+ ];
}
diff --git a/src/Contexts/ContextMySql50600.php b/src/Contexts/ContextMySql50600.php
index e447ec7..f60ae05 100644
--- a/src/Contexts/ContextMySql50600.php
+++ b/src/Contexts/ContextMySql50600.php
@@ -1,5 +1,4 @@
<?php
-
/**
* Context for MySQL 5.6.
*
@@ -7,6 +6,7 @@
*
* @see https://dev.mysql.com/doc/refman/5.6/en/keywords.html
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Contexts;
@@ -15,10 +15,6 @@ use PhpMyAdmin\SqlParser\Token;
/**
* Context for MySQL 5.6.
- *
- * @category Contexts
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class ContextMySql50600 extends Context
{
@@ -33,7 +29,7 @@ class ContextMySql50600 extends Context
*
* @var array
*/
- public static $KEYWORDS = array(
+ public static $KEYWORDS = [
'AT' => 1, 'DO' => 1, 'IO' => 1, 'NO' => 1, 'XA' => 1,
'ANY' => 1, 'CPU' => 1, 'END' => 1, 'IPC' => 1, 'NDB' => 1, 'NEW' => 1,
'ONE' => 1, 'ROW' => 1,
@@ -340,6 +336,6 @@ class ContextMySql50600 extends Context
'CHAR' => 43,
'BINARY' => 43,
- 'INTERVAL' => 43
- );
+ 'INTERVAL' => 43,
+ ];
}
diff --git a/src/Contexts/ContextMySql50700.php b/src/Contexts/ContextMySql50700.php
index bf77167..412c25b 100644
--- a/src/Contexts/ContextMySql50700.php
+++ b/src/Contexts/ContextMySql50700.php
@@ -1,5 +1,4 @@
<?php
-
/**
* Context for MySQL 5.7.
*
@@ -7,6 +6,7 @@
*
* @see https://dev.mysql.com/doc/refman/5.7/en/keywords.html
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Contexts;
@@ -15,10 +15,6 @@ use PhpMyAdmin\SqlParser\Token;
/**
* Context for MySQL 5.7.
- *
- * @category Contexts
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class ContextMySql50700 extends Context
{
@@ -33,7 +29,7 @@ class ContextMySql50700 extends Context
*
* @var array
*/
- public static $KEYWORDS = array(
+ public static $KEYWORDS = [
'AT' => 1, 'DO' => 1, 'IO' => 1, 'NO' => 1, 'XA' => 1,
'ANY' => 1, 'CPU' => 1, 'END' => 1, 'IPC' => 1, 'NDB' => 1, 'NEW' => 1,
'ONE' => 1, 'ROW' => 1, 'XID' => 1,
@@ -360,6 +356,6 @@ class ContextMySql50700 extends Context
'CHAR' => 43,
'BINARY' => 43,
- 'INTERVAL' => 43
- );
+ 'INTERVAL' => 43,
+ ];
}
diff --git a/src/Contexts/ContextMySql80000.php b/src/Contexts/ContextMySql80000.php
index 05fc4c9..bfc265f 100644
--- a/src/Contexts/ContextMySql80000.php
+++ b/src/Contexts/ContextMySql80000.php
@@ -1,5 +1,4 @@
<?php
-
/**
* Context for MySQL 8.0.
*
@@ -7,6 +6,7 @@
*
* @see https://dev.mysql.com/doc/refman/8.0/en/keywords.html
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Contexts;
@@ -15,10 +15,6 @@ use PhpMyAdmin\SqlParser\Token;
/**
* Context for MySQL 8.0.
- *
- * @category Contexts
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class ContextMySql80000 extends Context
{
@@ -33,7 +29,7 @@ class ContextMySql80000 extends Context
*
* @var array
*/
- public static $KEYWORDS = array(
+ public static $KEYWORDS = [
'AT' => 1, 'DO' => 1, 'IO' => 1, 'NO' => 1, 'XA' => 1,
'ANY' => 1, 'CPU' => 1, 'END' => 1, 'IPC' => 1, 'NDB' => 1, 'NEW' => 1,
'ONE' => 1, 'ROW' => 1, 'XID' => 1,
@@ -360,6 +356,6 @@ class ContextMySql80000 extends Context
'CHAR' => 43,
'BINARY' => 43,
- 'INTERVAL' => 43
- );
+ 'INTERVAL' => 43,
+ ];
}
diff --git a/src/Core.php b/src/Core.php
index 052ac5e..1d3eeea 100644
--- a/src/Core.php
+++ b/src/Core.php
@@ -1,19 +1,21 @@
<?php
-
/**
* Defines the core helper infrastructure of the library.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser;
+use Exception;
+
class Core
{
/**
* Whether errors should throw exceptions or just be stored.
*
- * @var bool
- *
* @see static::$errors
+ *
+ * @var bool
*/
public $strict = false;
@@ -24,18 +26,18 @@ class Core
* error might be false positive or a partial result (even a bad one)
* might be needed.
*
- * @var \Exception[]
- *
* @see Core::error()
+ *
+ * @var Exception[]
*/
- public $errors = array();
+ public $errors = [];
/**
* Creates a new error log.
*
- * @param \Exception $error the error exception
+ * @param Exception $error the error exception
*
- * @throws \Exception throws the exception, if strict mode is enabled
+ * @throws Exception throws the exception, if strict mode is enabled.
*/
public function error($error)
{
diff --git a/src/Exceptions/LexerException.php b/src/Exceptions/LexerException.php
index 61e88c9..9731575 100644
--- a/src/Exceptions/LexerException.php
+++ b/src/Exceptions/LexerException.php
@@ -1,19 +1,17 @@
<?php
-
/**
* Exception thrown by the lexer.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Exceptions;
+use Exception;
+
/**
* Exception thrown by the lexer.
- *
- * @category Exceptions
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
-class LexerException extends \Exception
+class LexerException extends Exception
{
/**
* The character that produced this error.
@@ -30,8 +28,6 @@ class LexerException extends \Exception
public $pos;
/**
- * Constructor.
- *
* @param string $msg the message of this exception
* @param string $ch the character that produced this exception
* @param int $pos the position of the character
diff --git a/src/Exceptions/LoaderException.php b/src/Exceptions/LoaderException.php
index bfbd4c3..54b9234 100644
--- a/src/Exceptions/LoaderException.php
+++ b/src/Exceptions/LoaderException.php
@@ -1,19 +1,17 @@
<?php
-
/**
* Exception thrown by the lexer.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Exceptions;
+use Exception;
+
/**
* Exception thrown by the lexer.
- *
- * @category Exceptions
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
-class LoaderException extends \Exception
+class LoaderException extends Exception
{
/**
* The failed load name.
@@ -23,8 +21,6 @@ class LoaderException extends \Exception
public $name;
/**
- * Constructor.
- *
* @param string $msg the message of this exception
* @param string $name the character that produced this exception
* @param int $code the code of this error
diff --git a/src/Exceptions/ParserException.php b/src/Exceptions/ParserException.php
index eb13653..ae63f07 100644
--- a/src/Exceptions/ParserException.php
+++ b/src/Exceptions/ParserException.php
@@ -1,21 +1,18 @@
<?php
-
/**
* Exception thrown by the parser.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Exceptions;
+use Exception;
use PhpMyAdmin\SqlParser\Token;
/**
* Exception thrown by the parser.
- *
- * @category Exceptions
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
-class ParserException extends \Exception
+class ParserException extends Exception
{
/**
* The token that produced this error.
@@ -25,8 +22,6 @@ class ParserException extends \Exception
public $token;
/**
- * Constructor.
- *
* @param string $msg the message of this exception
* @param Token $token the token that produced this exception
* @param int $code the code of this error
diff --git a/src/Lexer.php b/src/Lexer.php
index 895cb2b..2479410 100644
--- a/src/Lexer.php
+++ b/src/Lexer.php
@@ -1,5 +1,4 @@
<?php
-
/**
* Defines the lexer of the library.
*
@@ -7,6 +6,7 @@
*
* Depends on context to extract lexemes.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser;
@@ -33,10 +33,6 @@ if (! defined('USE_UTF_STRINGS')) {
*
* The output of the lexer is affected by the context of the SQL statement.
*
- * @category Lexer
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
- *
* @see Context
*/
class Lexer extends Core
@@ -46,7 +42,7 @@ class Lexer extends Core
*
* @var array
*/
- public static $PARSER_METHODS = array(
+ public static $PARSER_METHODS = [
// It is best to put the parsers in order of their complexity
// (ascending) and their occurrence rate (descending).
//
@@ -80,8 +76,8 @@ class Lexer extends Core
'parseSymbol',
'parseKeyword',
'parseLabel',
- 'parseUnknown'
- );
+ 'parseUnknown',
+ ];
/**
* The string to be parsed.
@@ -158,8 +154,6 @@ class Lexer extends Core
}
/**
- * Constructor.
- *
* @param string|UtfString $str the query to be lexed
* @param bool $strict whether strict mode should be
* enabled or not
@@ -353,7 +347,7 @@ class Lexer extends Core
* @param int $pos the position of the character
* @param int $code the code of the error
*
- * @throws LexerException throws the exception, if strict mode is enabled
+ * @throws LexerException throws the exception, if strict mode is enabled.
*/
public function error($msg, $str = '', $pos = 0, $code = 0)
{
diff --git a/src/Parser.php b/src/Parser.php
index ab3e1b7..902fa49 100644
--- a/src/Parser.php
+++ b/src/Parser.php
@@ -1,10 +1,10 @@
<?php
-
/**
* Defines the parser of the library.
*
* This is one of the most important components, along with the lexer.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser;
@@ -15,10 +15,6 @@ use PhpMyAdmin\SqlParser\Statements\TransactionStatement;
/**
* Takes multiple tokens (contained in a Lexer instance) as input and builds a
* parse tree.
- *
- * @category Parser
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class Parser extends Core
{
@@ -27,7 +23,7 @@ class Parser extends Core
*
* @var array
*/
- public static $STATEMENT_PARSERS = array(
+ public static $STATEMENT_PARSERS = [
// MySQL Utility Statements
'DESCRIBE' => 'PhpMyAdmin\\SqlParser\\Statements\\ExplainStatement',
'DESC' => 'PhpMyAdmin\\SqlParser\\Statements\\ExplainStatement',
@@ -92,247 +88,247 @@ class Parser extends Core
// Lock statements
// https://dev.mysql.com/doc/refman/5.7/en/lock-tables.html
'LOCK' => 'PhpMyAdmin\\SqlParser\\Statements\\LockStatement',
- 'UNLOCK' => 'PhpMyAdmin\\SqlParser\\Statements\\LockStatement'
- );
+ 'UNLOCK' => 'PhpMyAdmin\\SqlParser\\Statements\\LockStatement',
+ ];
/**
* Array of classes that are used in parsing SQL components.
*
* @var array
*/
- public static $KEYWORD_PARSERS = array(
+ public static $KEYWORD_PARSERS = [
// This is not a proper keyword and was added here to help the
// formatter.
- 'PARTITION BY' => array(),
- 'SUBPARTITION BY' => array(),
+ 'PARTITION BY' => [],
+ 'SUBPARTITION BY' => [],
// This is not a proper keyword and was added here to help the
// builder.
- '_OPTIONS' => array(
+ '_OPTIONS' => [
'class' => 'PhpMyAdmin\\SqlParser\\Components\\OptionsArray',
'field' => 'options',
- ),
- '_END_OPTIONS' => array(
+ ],
+ '_END_OPTIONS' => [
'class' => 'PhpMyAdmin\\SqlParser\\Components\\OptionsArray',
'field' => 'end_options',
- ),
+ ],
- 'INTERSECT' => array(
+ 'INTERSECT' => [
'class' => 'PhpMyAdmin\\SqlParser\\Components\\UnionKeyword',
'field' => 'union',
- ),
- 'EXCEPT' => array(
+ ],
+ 'EXCEPT' => [
'class' => 'PhpMyAdmin\\SqlParser\\Components\\UnionKeyword',
'field' => 'union',
- ),
- 'UNION' => array(
+ ],
+ 'UNION' => [
'class' => 'PhpMyAdmin\\SqlParser\\Components\\UnionKeyword',
'field' => 'union',
- ),
- 'UNION ALL' => array(
+ ],
+ 'UNION ALL' => [
'class' => 'PhpMyAdmin\\SqlParser\\Components\\UnionKeyword',
'field' => 'union',
- ),
- 'UNION DISTINCT' => array(
+ ],
+ 'UNION DISTINCT' => [
'class' => 'PhpMyAdmin\\SqlParser\\Components\\UnionKeyword',
'field' => 'union',
- ),
+ ],
// Actual clause parsers.
- 'ALTER' => array(
+ 'ALTER' => [
'class' => 'PhpMyAdmin\\SqlParser\\Components\\Expression',
'field' => 'table',
- 'options' => array('parseField' => 'table'),
- ),
- 'ANALYZE' => array(
+ 'options' => ['parseField' => 'table'],
+ ],
+ 'ANALYZE' => [
'class' => 'PhpMyAdmin\\SqlParser\\Components\\ExpressionArray',
'field' => 'tables',
- 'options' => array('parseField' => 'table'),
- ),
- 'BACKUP' => array(
+ 'options' => ['parseField' => 'table'],
+ ],
+ 'BACKUP' => [
'class' => 'PhpMyAdmin\\SqlParser\\Components\\ExpressionArray',
'field' => 'tables',
- 'options' => array('parseField' => 'table'),
- ),
- 'CALL' => array(
+ 'options' => ['parseField' => 'table'],
+ ],
+ 'CALL' => [
'class' => 'PhpMyAdmin\\SqlParser\\Components\\FunctionCall',
'field' => 'call',
- ),
- 'CHECK' => array(
+ ],
+ 'CHECK' => [
'class' => 'PhpMyAdmin\\SqlParser\\Components\\ExpressionArray',
'field' => 'tables',
- 'options' => array('parseField' => 'table'),
- ),
- 'CHECKSUM' => array(
+ 'options' => ['parseField' => 'table'],
+ ],
+ 'CHECKSUM' => [
'class' => 'PhpMyAdmin\\SqlParser\\Components\\ExpressionArray',
'field' => 'tables',
- 'options' => array('parseField' => 'table'),
- ),
- 'CROSS JOIN' => array(
+ 'options' => ['parseField' => 'table'],
+ ],
+ 'CROSS JOIN' => [
'class' => 'PhpMyAdmin\\SqlParser\\Components\\JoinKeyword',
'field' => 'join',
- ),
- 'DROP' => array(
+ ],
+ 'DROP' => [
'class' => 'PhpMyAdmin\\SqlParser\\Components\\ExpressionArray',
'field' => 'fields',
- 'options' => array('parseField' => 'table'),
- ),
- 'FORCE' => array(
+ 'options' => ['parseField' => 'table'],
+ ],
+ 'FORCE' => [
'class' => 'PhpMyAdmin\\SqlParser\\Components\\IndexHint',
'field' => 'index_hints',
- ),
- 'FROM' => array(
+ ],
+ 'FROM' => [
'class' => 'PhpMyAdmin\\SqlParser\\Components\\ExpressionArray',
'field' => 'from',
- 'options' => array('field' => 'table'),
- ),
- 'GROUP BY' => array(
+ 'options' => ['field' => 'table'],
+ ],
+ 'GROUP BY' => [
'class' => 'PhpMyAdmin\\SqlParser\\Components\\GroupKeyword',
'field' => 'group',
- ),
- 'HAVING' => array(
+ ],
+ 'HAVING' => [
'class' => 'PhpMyAdmin\\SqlParser\\Components\\Condition',
'field' => 'having',
- ),
- 'IGNORE' => array(
+ ],
+ 'IGNORE' => [
'class' => 'PhpMyAdmin\\SqlParser\\Components\\IndexHint',
'field' => 'index_hints',
- ),
- 'INTO' => array(
+ ],
+ 'INTO' => [
'class' => 'PhpMyAdmin\\SqlParser\\Components\\IntoKeyword',
'field' => 'into',
- ),
- 'JOIN' => array(
+ ],
+ 'JOIN' => [
'class' => 'PhpMyAdmin\\SqlParser\\Components\\JoinKeyword',
'field' => 'join',
- ),
- 'LEFT JOIN' => array(
+ ],
+ 'LEFT JOIN' => [
'class' => 'PhpMyAdmin\\SqlParser\\Components\\JoinKeyword',
'field' => 'join',
- ),
- 'LEFT OUTER JOIN' => array(
+ ],
+ 'LEFT OUTER JOIN' => [
'class' => 'PhpMyAdmin\\SqlParser\\Components\\JoinKeyword',
'field' => 'join',
- ),
- 'ON' => array(
+ ],
+ 'ON' => [
'class' => 'PhpMyAdmin\\SqlParser\\Components\\Expression',
'field' => 'table',
- 'options' => array('parseField' => 'table'),
- ),
- 'RIGHT JOIN' => array(
+ 'options' => ['parseField' => 'table'],
+ ],
+ 'RIGHT JOIN' => [
'class' => 'PhpMyAdmin\\SqlParser\\Components\\JoinKeyword',
'field' => 'join',
- ),
- 'RIGHT OUTER JOIN' => array(
+ ],
+ 'RIGHT OUTER JOIN' => [
'class' => 'PhpMyAdmin\\SqlParser\\Components\\JoinKeyword',
'field' => 'join',
- ),
- 'INNER JOIN' => array(
+ ],
+ 'INNER JOIN' => [
'class' => 'PhpMyAdmin\\SqlParser\\Components\\JoinKeyword',
'field' => 'join',
- ),
- 'FULL JOIN' => array(
+ ],
+ 'FULL JOIN' => [
'class' => 'PhpMyAdmin\\SqlParser\\Components\\JoinKeyword',
'field' => 'join',
- ),
- 'FULL OUTER JOIN' => array(
+ ],
+ 'FULL OUTER JOIN' => [
'class' => 'PhpMyAdmin\\SqlParser\\Components\\JoinKeyword',
'field' => 'join',
- ),
- 'NATURAL JOIN' => array(
+ ],
+ 'NATURAL JOIN' => [
'class' => 'PhpMyAdmin\\SqlParser\\Components\\JoinKeyword',
'field' => 'join',
- ),
- 'NATURAL LEFT JOIN' => array(
+ ],
+ 'NATURAL LEFT JOIN' => [
'class' => 'PhpMyAdmin\\SqlParser\\Components\\JoinKeyword',
'field' => 'join',
- ),
- 'NATURAL RIGHT JOIN' => array(
+ ],
+ 'NATURAL RIGHT JOIN' => [
'class' => 'PhpMyAdmin\\SqlParser\\Components\\JoinKeyword',
'field' => 'join',
- ),
- 'NATURAL LEFT OUTER JOIN' => array(
+ ],
+ 'NATURAL LEFT OUTER JOIN' => [
'class' => 'PhpMyAdmin\\SqlParser\\Components\\JoinKeyword',
'field' => 'join',
- ),
- 'NATURAL RIGHT OUTER JOIN' => array(
+ ],
+ 'NATURAL RIGHT OUTER JOIN' => [
'class' => 'PhpMyAdmin\\SqlParser\\Components\\JoinKeyword',
'field' => 'join',
- ),
- 'STRAIGHT_JOIN' => array(
+ ],
+ 'STRAIGHT_JOIN' => [
'class' => 'PhpMyAdmin\\SqlParser\\Components\\JoinKeyword',
'field' => 'join',
- ),
- 'LIMIT' => array(
+ ],
+ 'LIMIT' => [
'class' => 'PhpMyAdmin\\SqlParser\\Components\\Limit',
'field' => 'limit',
- ),
- 'OPTIMIZE' => array(
+ ],
+ 'OPTIMIZE' => [
'class' => 'PhpMyAdmin\\SqlParser\\Components\\ExpressionArray',
'field' => 'tables',
- 'options' => array('parseField' => 'table'),
- ),
- 'ORDER BY' => array(
+ 'options' => ['parseField' => 'table'],
+ ],
+ 'ORDER BY' => [
'class' => 'PhpMyAdmin\\SqlParser\\Components\\OrderKeyword',
'field' => 'order',
- ),
- 'PARTITION' => array(
+ ],
+ 'PARTITION' => [
'class' => 'PhpMyAdmin\\SqlParser\\Components\\ArrayObj',
'field' => 'partition',
- ),
- 'PROCEDURE' => array(
+ ],
+ 'PROCEDURE' => [
'class' => 'PhpMyAdmin\\SqlParser\\Components\\FunctionCall',
'field' => 'procedure',
- ),
- 'RENAME' => array(
+ ],
+ 'RENAME' => [
'class' => 'PhpMyAdmin\\SqlParser\\Components\\RenameOperation',
'field' => 'renames',
- ),
- 'REPAIR' => array(
+ ],
+ 'REPAIR' => [
'class' => 'PhpMyAdmin\\SqlParser\\Components\\ExpressionArray',
'field' => 'tables',
- 'options' => array('parseField' => 'table'),
- ),
- 'RESTORE' => array(
+ 'options' => ['parseField' => 'table'],
+ ],
+ 'RESTORE' => [
'class' => 'PhpMyAdmin\\SqlParser\\Components\\ExpressionArray',
'field' => 'tables',
- 'options' => array('parseField' => 'table'),
- ),
- 'SET' => array(
+ 'options' => ['parseField' => 'table'],
+ ],
+ 'SET' => [
'class' => 'PhpMyAdmin\\SqlParser\\Components\\SetOperation',
'field' => 'set',
- ),
- 'SELECT' => array(
+ ],
+ 'SELECT' => [
'class' => 'PhpMyAdmin\\SqlParser\\Components\\ExpressionArray',
'field' => 'expr',
- ),
- 'TRUNCATE' => array(
+ ],
+ 'TRUNCATE' => [
'class' => 'PhpMyAdmin\\SqlParser\\Components\\Expression',
'field' => 'table',
- 'options' => array('parseField' => 'table'),
- ),
- 'UPDATE' => array(
+ 'options' => ['parseField' => 'table'],
+ ],
+ 'UPDATE' => [
'class' => 'PhpMyAdmin\\SqlParser\\Components\\ExpressionArray',
'field' => 'tables',
- 'options' => array('parseField' => 'table'),
- ),
- 'USE' => array(
+ 'options' => ['parseField' => 'table'],
+ ],
+ 'USE' => [
'class' => 'PhpMyAdmin\\SqlParser\\Components\\IndexHint',
'field' => 'index_hints',
- ),
- 'VALUE' => array(
+ ],
+ 'VALUE' => [
'class' => 'PhpMyAdmin\\SqlParser\\Components\\Array2d',
'field' => 'values',
- ),
- 'VALUES' => array(
+ ],
+ 'VALUES' => [
'class' => 'PhpMyAdmin\\SqlParser\\Components\\Array2d',
'field' => 'values',
- ),
- 'WHERE' => array(
+ ],
+ 'WHERE' => [
'class' => 'PhpMyAdmin\\SqlParser\\Components\\Condition',
'field' => 'where',
- )
- );
+ ],
+ ];
/**
* The list of tokens that are parsed.
@@ -346,7 +342,7 @@ class Parser extends Core
*
* @var Statement[]
*/
- public $statements = array();
+ public $statements = [];
/**
* The number of opened brackets.
@@ -356,8 +352,6 @@ class Parser extends Core
public $brackets = 0;
/**
- * Constructor.
- *
* @param string|UtfString|TokensList $list the list of tokens to be parsed
* @param bool $strict whether strict mode should be enabled or not
*/
@@ -526,16 +520,16 @@ class Parser extends Core
*
* @var SelectStatement $lastStatement
*/
- $lastStatement->union[] = array(
+ $lastStatement->union[] = [
$unionType,
- $statement
- );
+ $statement,
+ ];
// if there are no no delimiting brackets, the `ORDER` and
// `LIMIT` keywords actually belong to the first statement.
$lastStatement->order = $statement->order;
$lastStatement->limit = $statement->limit;
- $statement->order = array();
+ $statement->order = [];
$statement->limit = null;
// The statement actually ends where the last statement in
@@ -597,7 +591,7 @@ class Parser extends Core
* @param Token $token the token that produced the error
* @param int $code the code of the error
*
- * @throws ParserException throws the exception, if strict mode is enabled
+ * @throws ParserException throws the exception, if strict mode is enabled.
*/
public function error($msg, Token $token = null, $code = 0)
{
diff --git a/src/Statement.php b/src/Statement.php
index f9e0902..6617da7 100644
--- a/src/Statement.php
+++ b/src/Statement.php
@@ -1,11 +1,11 @@
<?php
-
/**
* The result of the parser is an array of statements are extensions of the
* class defined here.
*
* A statement represents the result of parsing the lexemes.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser;
@@ -14,10 +14,6 @@ use PhpMyAdmin\SqlParser\Components\OptionsArray;
/**
* Abstract statement definition.
- *
- * @category Statements
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
abstract class Statement
{
@@ -40,7 +36,7 @@ abstract class Statement
*
* @var array
*/
- public static $OPTIONS = array();
+ public static $OPTIONS = [];
/**
* The clauses of this statement, in order.
@@ -54,16 +50,16 @@ abstract class Statement
*
* @var array
*/
- public static $CLAUSES = array();
+ public static $CLAUSES = [];
- public static $END_OPTIONS = array();
+ public static $END_OPTIONS = [];
/**
* The options of this query.
*
- * @var OptionsArray
- *
* @see static::$OPTIONS
+ *
+ * @var OptionsArray
*/
public $options;
@@ -82,8 +78,6 @@ abstract class Statement
public $last;
/**
- * Constructor.
- *
* @param Parser $parser the instance that requests parsing
* @param TokensList $list the list of tokens to be parsed
*/
@@ -120,7 +114,7 @@ abstract class Statement
*
* @var array
*/
- $built = array();
+ $built = [];
/**
* Statement's clauses.
@@ -202,7 +196,7 @@ abstract class Statement
*
* @var array
*/
- $parsedClauses = array();
+ $parsedClauses = [];
// This may be corrected by the parser.
$this->first = $list->idx;
@@ -303,7 +297,7 @@ abstract class Statement
*
* @var array
*/
- $options = array();
+ $options = [];
// Looking for duplicated clauses.
if (! empty(Parser::$KEYWORD_PARSERS[$token->value])
@@ -323,7 +317,7 @@ abstract class Statement
// Fix Issue #221: As `truncate` is not a keyword
// but it might be the beginning of a statement of truncate,
// so let the value use the keyword field for truncate type.
- $token_value = in_array($token->keyword, array('TRUNCATE')) ? $token->keyword : $token->value;
+ $token_value = in_array($token->keyword, ['TRUNCATE']) ? $token->keyword : $token->value;
if (! empty(Parser::$KEYWORD_PARSERS[$token_value]) && $list->idx < $list->count) {
$class = Parser::$KEYWORD_PARSERS[$token_value]['class'];
$field = Parser::$KEYWORD_PARSERS[$token_value]['field'];
@@ -552,7 +546,7 @@ abstract class Statement
$minIdx = $clauseStartIdx;
}
- $lastIdx = ($clauseStartIdx !== -1) ? $clauseStartIdx : $lastIdx;
+ $lastIdx = $clauseStartIdx !== -1 ? $clauseStartIdx : $lastIdx;
}
return true;
diff --git a/src/Statements/AlterStatement.php b/src/Statements/AlterStatement.php
index ce0c824..a03b2fc 100644
--- a/src/Statements/AlterStatement.php
+++ b/src/Statements/AlterStatement.php
@@ -1,8 +1,8 @@
<?php
-
/**
* `ALTER` statement.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Statements;
@@ -16,10 +16,6 @@ use PhpMyAdmin\SqlParser\TokensList;
/**
* `ALTER` statement.
- *
- * @category Statements
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class AlterStatement extends Statement
{
@@ -35,14 +31,14 @@ class AlterStatement extends Statement
*
* @var AlterOperation[]
*/
- public $altered = array();
+ public $altered = [];
/**
* Options of this statement.
*
* @var array
*/
- public static $OPTIONS = array(
+ public static $OPTIONS = [
'ONLINE' => 1,
'OFFLINE' => 1,
'IGNORE' => 2,
@@ -54,8 +50,8 @@ class AlterStatement extends Statement
'SERVER' => 3,
'TABLE' => 3,
'TABLESPACE' => 3,
- 'VIEW' => 3
- );
+ 'VIEW' => 3,
+ ];
/**
* @param Parser $parser the instance that requests parsing
@@ -75,10 +71,10 @@ class AlterStatement extends Statement
$this->table = Expression::parse(
$parser,
$list,
- array(
+ [
'parseField' => 'table',
- 'breakOnAlias' => true
- )
+ 'breakOnAlias' => true,
+ ]
);
++$list->idx; // Skipping field.
@@ -114,7 +110,7 @@ class AlterStatement extends Statement
}
if ($state === 0) {
- $options = array();
+ $options = [];
if ($this->options->has('DATABASE')) {
$options = AlterOperation::$DB_OPTIONS;
} elseif ($this->options->has('TABLE')) {
@@ -138,7 +134,7 @@ class AlterStatement extends Statement
*/
public function build()
{
- $tmp = array();
+ $tmp = [];
foreach ($this->altered as $altered) {
$tmp[] = $altered::build($altered);
}
diff --git a/src/Statements/AnalyzeStatement.php b/src/Statements/AnalyzeStatement.php
index 4f6ea32..b14b891 100644
--- a/src/Statements/AnalyzeStatement.php
+++ b/src/Statements/AnalyzeStatement.php
@@ -1,8 +1,8 @@
<?php
-
/**
* `ANALYZE` statement.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Statements;
@@ -12,12 +12,8 @@ use PhpMyAdmin\SqlParser\Statement;
/**
* `ANALYZE` statement.
*
- * ANALYZE array(NO_WRITE_TO_BINLOG | LOCAL] TABLE
- * tbl_name array(, tbl_name] ...
- *
- * @category Statements
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
+ * ANALYZE [NO_WRITE_TO_BINLOG | LOCAL] TABLE
+ * tbl_name [, tbl_name] ...
*/
class AnalyzeStatement extends Statement
{
@@ -26,12 +22,12 @@ class AnalyzeStatement extends Statement
*
* @var array
*/
- public static $OPTIONS = array(
+ public static $OPTIONS = [
'TABLE' => 1,
'NO_WRITE_TO_BINLOG' => 2,
- 'LOCAL' => 3
- );
+ 'LOCAL' => 3,
+ ];
/**
* Analyzed tables.
diff --git a/src/Statements/BackupStatement.php b/src/Statements/BackupStatement.php
index 52f136b..3fab2de 100644
--- a/src/Statements/BackupStatement.php
+++ b/src/Statements/BackupStatement.php
@@ -1,19 +1,15 @@
<?php
-
/**
* `BACKUP` statement.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Statements;
/**
* `BACKUP` statement.
*
- * BACKUP TABLE tbl_name array(, tbl_name] ... TO '/path/to/backup/directory'
- *
- * @category Statements
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
+ * BACKUP TABLE tbl_name [, tbl_name] ... TO '/path/to/backup/directory'
*/
class BackupStatement extends MaintenanceStatement
{
@@ -22,15 +18,15 @@ class BackupStatement extends MaintenanceStatement
*
* @var array
*/
- public static $OPTIONS = array(
+ public static $OPTIONS = [
'TABLE' => 1,
'NO_WRITE_TO_BINLOG' => 2,
'LOCAL' => 3,
- 'TO' => array(
+ 'TO' => [
4,
'var',
- )
- );
+ ],
+ ];
}
diff --git a/src/Statements/CallStatement.php b/src/Statements/CallStatement.php
index 00cb95c..6a3de69 100644
--- a/src/Statements/CallStatement.php
+++ b/src/Statements/CallStatement.php
@@ -1,8 +1,8 @@
<?php
-
/**
* `CALL` statement.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Statements;
@@ -17,10 +17,6 @@ use PhpMyAdmin\SqlParser\Statement;
* or
*
* CALL sp_name[()]
- *
- * @category Statements
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class CallStatement extends Statement
{
@@ -38,6 +34,6 @@ class CallStatement extends Statement
*/
public function build()
{
- return "CALL " . $this->call->name . "(" . ($this->call->parameters ? implode(",", $this->call->parameters->raw) : "") . ")";
+ return 'CALL ' . $this->call->name . '(' . ($this->call->parameters ? implode(',', $this->call->parameters->raw) : '') . ')';
}
}
diff --git a/src/Statements/CheckStatement.php b/src/Statements/CheckStatement.php
index 57e5cb7..c112f0a 100644
--- a/src/Statements/CheckStatement.php
+++ b/src/Statements/CheckStatement.php
@@ -1,19 +1,15 @@
<?php
-
/**
* `CHECK` statement.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Statements;
/**
* `CHECK` statement.
*
- * CHECK TABLE tbl_name array(, tbl_name] ... array(option] ...
- *
- * @category Statements
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
+ * CHECK TABLE tbl_name [, tbl_name] ... [option] ...
*/
class CheckStatement extends MaintenanceStatement
{
@@ -22,7 +18,7 @@ class CheckStatement extends MaintenanceStatement
*
* @var array
*/
- public static $OPTIONS = array(
+ public static $OPTIONS = [
'TABLE' => 1,
'FOR UPGRADE' => 2,
@@ -30,6 +26,6 @@ class CheckStatement extends MaintenanceStatement
'FAST' => 4,
'MEDIUM' => 5,
'EXTENDED' => 6,
- 'CHANGED' => 7
- );
+ 'CHANGED' => 7,
+ ];
}
diff --git a/src/Statements/ChecksumStatement.php b/src/Statements/ChecksumStatement.php
index 1be2588..259f287 100644
--- a/src/Statements/ChecksumStatement.php
+++ b/src/Statements/ChecksumStatement.php
@@ -1,19 +1,15 @@
<?php
-
/**
* `CHECKSUM` statement.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Statements;
/**
* `CHECKSUM` statement.
*
- * CHECKSUM TABLE tbl_name array(, tbl_name] ... array( QUICK | EXTENDED ]
- *
- * @category Statements
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
+ * CHECKSUM TABLE tbl_name [, tbl_name] ... [ QUICK | EXTENDED ]
*/
class ChecksumStatement extends MaintenanceStatement
{
@@ -22,10 +18,10 @@ class ChecksumStatement extends MaintenanceStatement
*
* @var array
*/
- public static $OPTIONS = array(
+ public static $OPTIONS = [
'TABLE' => 1,
'QUICK' => 2,
- 'EXTENDED' => 3
- );
+ 'EXTENDED' => 3,
+ ];
}
diff --git a/src/Statements/CreateStatement.php b/src/Statements/CreateStatement.php
index d3bf3bd..64ea57d 100644
--- a/src/Statements/CreateStatement.php
+++ b/src/Statements/CreateStatement.php
@@ -1,8 +1,8 @@
<?php
-
/**
* `CREATE` statement.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Statements;
@@ -20,10 +20,6 @@ use PhpMyAdmin\SqlParser\TokensList;
/**
* `CREATE` statement.
- *
- * @category Statements
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class CreateStatement extends Statement
{
@@ -32,25 +28,25 @@ class CreateStatement extends Statement
*
* @var array
*/
- public static $OPTIONS = array(
+ public static $OPTIONS = [
// CREATE TABLE
'TEMPORARY' => 1,
// CREATE VIEW
'OR REPLACE' => 2,
- 'ALGORITHM' => array(
+ 'ALGORITHM' => [
3,
'var=',
- ),
+ ],
// `DEFINER` is also used for `CREATE FUNCTION / PROCEDURE`
- 'DEFINER' => array(
+ 'DEFINER' => [
4,
'expr=',
- ),
- 'SQL SECURITY' => array(
+ ],
+ 'SQL SECURITY' => [
5,
'var',
- ),
+ ],
'DATABASE' => 6,
'EVENT' => 6,
@@ -69,159 +65,159 @@ class CreateStatement extends Statement
'SCHEMA' => 6,
// CREATE TABLE
- 'IF NOT EXISTS' => 7
- );
+ 'IF NOT EXISTS' => 7,
+ ];
/**
* All database options.
*
* @var array
*/
- public static $DB_OPTIONS = array(
- 'CHARACTER SET' => array(
+ public static $DB_OPTIONS = [
+ 'CHARACTER SET' => [
1,
'var=',
- ),
- 'CHARSET' => array(
+ ],
+ 'CHARSET' => [
1,
'var=',
- ),
- 'DEFAULT CHARACTER SET' => array(
+ ],
+ 'DEFAULT CHARACTER SET' => [
1,
'var=',
- ),
- 'DEFAULT CHARSET' => array(
+ ],
+ 'DEFAULT CHARSET' => [
1,
'var=',
- ),
- 'DEFAULT COLLATE' => array(
+ ],
+ 'DEFAULT COLLATE' => [
2,
'var=',
- ),
- 'COLLATE' => array(
+ ],
+ 'COLLATE' => [
2,
'var=',
- )
- );
+ ],
+ ];
/**
* All table options.
*
* @var array
*/
- public static $TABLE_OPTIONS = array(
- 'ENGINE' => array(
+ public static $TABLE_OPTIONS = [
+ 'ENGINE' => [
1,
'var=',
- ),
- 'AUTO_INCREMENT' => array(
+ ],
+ 'AUTO_INCREMENT' => [
2,
'var=',
- ),
- 'AVG_ROW_LENGTH' => array(
+ ],
+ 'AVG_ROW_LENGTH' => [
3,
'var',
- ),
- 'CHARACTER SET' => array(
+ ],
+ 'CHARACTER SET' => [
4,
'var=',
- ),
- 'CHARSET' => array(
+ ],
+ 'CHARSET' => [
4,
'var=',
- ),
- 'DEFAULT CHARACTER SET' => array(
+ ],
+ 'DEFAULT CHARACTER SET' => [
4,
'var=',
- ),
- 'DEFAULT CHARSET' => array(
+ ],
+ 'DEFAULT CHARSET' => [
4,
'var=',
- ),
- 'CHECKSUM' => array(
+ ],
+ 'CHECKSUM' => [
5,
'var',
- ),
- 'DEFAULT COLLATE' => array(
+ ],
+ 'DEFAULT COLLATE' => [
6,
'var=',
- ),
- 'COLLATE' => array(
+ ],
+ 'COLLATE' => [
6,
'var=',
- ),
- 'COMMENT' => array(
+ ],
+ 'COMMENT' => [
7,
'var=',
- ),
- 'CONNECTION' => array(
+ ],
+ 'CONNECTION' => [
8,
'var',
- ),
- 'DATA DIRECTORY' => array(
+ ],
+ 'DATA DIRECTORY' => [
9,
'var',
- ),
- 'DELAY_KEY_WRITE' => array(
+ ],
+ 'DELAY_KEY_WRITE' => [
10,
'var',
- ),
- 'INDEX DIRECTORY' => array(
+ ],
+ 'INDEX DIRECTORY' => [
11,
'var',
- ),
- 'INSERT_METHOD' => array(
+ ],
+ 'INSERT_METHOD' => [
12,
'var',
- ),
- 'KEY_BLOCK_SIZE' => array(
+ ],
+ 'KEY_BLOCK_SIZE' => [
13,
'var',
- ),
- 'MAX_ROWS' => array(
+ ],
+ 'MAX_ROWS' => [
14,
'var',
- ),
- 'MIN_ROWS' => array(
+ ],
+ 'MIN_ROWS' => [
15,
'var',
- ),
- 'PACK_KEYS' => array(
+ ],
+ 'PACK_KEYS' => [
16,
'var',
- ),
- 'PASSWORD' => array(
+ ],
+ 'PASSWORD' => [
17,
'var',
- ),
- 'ROW_FORMAT' => array(
+ ],
+ 'ROW_FORMAT' => [
18,
'var',
- ),
- 'TABLESPACE' => array(
+ ],
+ 'TABLESPACE' => [
19,
'var',
- ),
- 'STORAGE' => array(
+ ],
+ 'STORAGE' => [
20,
'var',
- ),
- 'UNION' => array(
+ ],
+ 'UNION' => [
21,
'var',
- )
- );
+ ],
+ ];
/**
* All function options.
*
* @var array
*/
- public static $FUNC_OPTIONS = array(
- 'COMMENT' => array(
+ public static $FUNC_OPTIONS = [
+ 'COMMENT' => [
1,
'var=',
- ),
+ ],
'LANGUAGE SQL' => 2,
'DETERMINISTIC' => 3,
'NOT DETERMINISTIC' => 3,
@@ -229,24 +225,24 @@ class CreateStatement extends Statement
'NO SQL' => 4,
'READS SQL DATA' => 4,
'MODIFIES SQL DATA' => 4,
- 'SQL SECURITY DEFINER' => array(
+ 'SQL SECURITY DEFINER' => [
5,
'var',
- )
- );
+ ],
+ ];
/**
* All trigger options.
*
* @var array
*/
- public static $TRIGGER_OPTIONS = array(
+ public static $TRIGGER_OPTIONS = [
'BEFORE' => 1,
'AFTER' => 1,
'INSERT' => 2,
'UPDATE' => 2,
- 'DELETE' => 2
- );
+ 'DELETE' => 2,
+ ];
/**
* The name of the entity that is created.
@@ -262,11 +258,11 @@ class CreateStatement extends Statement
*
* Used by `CREATE TABLE`, `CREATE FUNCTION` and `CREATE PROCEDURE`.
*
- * @var OptionsArray
- *
* @see static::$TABLE_OPTIONS
* @see static::$FUNC_OPTIONS
* @see static::$TRIGGER_OPTIONS
+ *
+ * @var OptionsArray
*/
public $entityOptions;
@@ -368,7 +364,7 @@ class CreateStatement extends Statement
*
* @var Token[]|string
*/
- public $body = array();
+ public $body = [];
/**
* @return string
@@ -389,12 +385,12 @@ class CreateStatement extends Statement
. Expression::build($this->name) . ' '
. OptionsArray::build($this->entityOptions);
} elseif ($this->options->has('TABLE')) {
- if (! is_null($this->select)) {
+ if ($this->select !== null) {
return 'CREATE '
. OptionsArray::build($this->options) . ' '
. Expression::build($this->name) . ' '
. $this->select->build();
- } elseif (! is_null($this->like)) {
+ } elseif ($this->like !== null) {
return 'CREATE '
. OptionsArray::build($this->options) . ' '
. Expression::build($this->name) . ' LIKE '
@@ -478,10 +474,10 @@ class CreateStatement extends Statement
$this->name = Expression::parse(
$parser,
$list,
- array(
+ [
'parseField' => $fieldName,
- 'breakOnAlias' => true
- )
+ 'breakOnAlias' => true,
+ ]
);
if (! isset($this->name) || ($this->name === '')) {
@@ -528,13 +524,13 @@ class CreateStatement extends Statement
$this->like = Expression::parse(
$parser,
$list,
- array(
+ [
'parseField' => 'table',
- 'breakOnAlias' => true
- )
+ 'breakOnAlias' => true,
+ ]
);
// The 'LIKE' keyword was found, but no table_name was found next to it
- if (is_null($this->like)) {
+ if ($this->like === null) {
$parser->error(
'A table name was expected.',
$list->tokens[$list->idx]
@@ -626,7 +622,7 @@ class CreateStatement extends Statement
}
// Building the expression used for partitioning.
- $this->$field .= ($token->type === Token::TYPE_WHITESPACE) ? ' ' : $token->token;
+ $this->$field .= $token->type === Token::TYPE_WHITESPACE ? ' ' : $token->token;
// Last bracket was read, the expression ended.
// Comparing with `0` and not `false`, because `false` means
@@ -641,9 +637,9 @@ class CreateStatement extends Statement
$this->partitions = ArrayObj::parse(
$parser,
$list,
- array(
- 'type' => 'PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition'
- )
+ [
+ 'type' => 'PhpMyAdmin\\SqlParser\\Components\\PartitionDefinition',
+ ]
);
}
break;
@@ -657,10 +653,10 @@ class CreateStatement extends Statement
if ($this->options->has('FUNCTION')) {
$prev_token = $token;
$token = $list->getNextOfType(Token::TYPE_KEYWORD);
- if (is_null($token) || $token->keyword !== 'RETURNS') {
+ if ($token === null || $token->keyword !== 'RETURNS') {
$parser->error(
'A "RETURNS" keyword was expected.',
- is_null($token) ? $prev_token : $token
+ $token ?? $prev_token
);
} else {
++$list->idx;
@@ -718,10 +714,10 @@ class CreateStatement extends Statement
$this->table = Expression::parse(
$parser,
$list,
- array(
+ [
'parseField' => 'table',
- 'breakOnAlias' => true
- )
+ 'breakOnAlias' => true,
+ ]
);
++$list->idx;
diff --git a/src/Statements/DeleteStatement.php b/src/Statements/DeleteStatement.php
index 088489d..57e100b 100644
--- a/src/Statements/DeleteStatement.php
+++ b/src/Statements/DeleteStatement.php
@@ -1,8 +1,8 @@
<?php
-
/**
* `DELETE` statement.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Statements;
@@ -41,11 +41,6 @@ use PhpMyAdmin\SqlParser\TokensList;
* FROM tbl_name[.*] [, tbl_name[.*]] ...
* USING table_references
* [WHERE where_condition]
- *
- *
- * @category Statements
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class DeleteStatement extends Statement
{
@@ -54,11 +49,11 @@ class DeleteStatement extends Statement
*
* @var array
*/
- public static $OPTIONS = array(
+ public static $OPTIONS = [
'LOW_PRIORITY' => 1,
'QUICK' => 2,
- 'IGNORE' => 3
- );
+ 'IGNORE' => 3,
+ ];
/**
* The clauses of this statement, in order.
@@ -67,41 +62,41 @@ class DeleteStatement extends Statement
*
* @var array
*/
- public static $CLAUSES = array(
- 'DELETE' => array(
+ public static $CLAUSES = [
+ 'DELETE' => [
'DELETE',
2,
- ),
+ ],
// Used for options.
- '_OPTIONS' => array(
+ '_OPTIONS' => [
'_OPTIONS',
1,
- ),
- 'FROM' => array(
+ ],
+ 'FROM' => [
'FROM',
3,
- ),
- 'PARTITION' => array(
+ ],
+ 'PARTITION' => [
'PARTITION',
3,
- ),
- 'USING' => array(
+ ],
+ 'USING' => [
'USING',
3,
- ),
- 'WHERE' => array(
+ ],
+ 'WHERE' => [
'WHERE',
3,
- ),
- 'ORDER BY' => array(
+ ],
+ 'ORDER BY' => [
'ORDER BY',
3,
- ),
- 'LIMIT' => array(
+ ],
+ 'LIMIT' => [
'LIMIT',
3,
- )
- );
+ ],
+ ];
/**
* Table(s) used as sources for this statement.
@@ -166,25 +161,25 @@ class DeleteStatement extends Statement
{
$ret = 'DELETE ' . OptionsArray::build($this->options);
- if (! is_null($this->columns) && count($this->columns) > 0) {
+ if ($this->columns !== null && count($this->columns) > 0) {
$ret .= ' ' . ExpressionArray::build($this->columns);
}
- if (! is_null($this->from) && count($this->from) > 0) {
+ if ($this->from !== null && count($this->from) > 0) {
$ret .= ' FROM ' . ExpressionArray::build($this->from);
}
- if (! is_null($this->join) && count($this->join) > 0) {
+ if ($this->join !== null && count($this->join) > 0) {
$ret .= ' ' . JoinKeyword::build($this->join);
}
- if (! is_null($this->using) && count($this->using) > 0) {
+ if ($this->using !== null && count($this->using) > 0) {
$ret .= ' USING ' . ExpressionArray::build($this->using);
}
- if (! is_null($this->where) && count($this->where) > 0) {
+ if ($this->where !== null && count($this->where) > 0) {
$ret .= ' WHERE ' . Condition::build($this->where);
}
- if (! is_null($this->order) && count($this->order) > 0) {
+ if ($this->order !== null && count($this->order) > 0) {
$ret .= ' ORDER BY ' . ExpressionArray::build($this->order);
}
- if (! is_null($this->limit) && strlen($this->limit) > 0) {
+ if ($this->limit !== null && strlen((string) $this->limit) > 0) {
$ret .= ' LIMIT ' . Limit::build($this->limit);
}
diff --git a/src/Statements/DropStatement.php b/src/Statements/DropStatement.php
index 7b9da2c..202d5e0 100644
--- a/src/Statements/DropStatement.php
+++ b/src/Statements/DropStatement.php
@@ -1,8 +1,8 @@
<?php
-
/**
* `DROP` statement.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Statements;
@@ -11,10 +11,6 @@ use PhpMyAdmin\SqlParser\Statement;
/**
* `DROP` statement.
- *
- * @category Statements
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class DropStatement extends Statement
{
@@ -23,7 +19,7 @@ class DropStatement extends Statement
*
* @var array
*/
- public static $OPTIONS = array(
+ public static $OPTIONS = [
'DATABASE' => 1,
'EVENT' => 1,
'FUNCTION' => 1,
@@ -39,8 +35,8 @@ class DropStatement extends Statement
'USER' => 1,
'TEMPORARY' => 2,
- 'IF EXISTS' => 3
- );
+ 'IF EXISTS' => 3,
+ ];
/**
* The clauses of this statement, in order.
@@ -49,26 +45,26 @@ class DropStatement extends Statement
*
* @var array
*/
- public static $CLAUSES = array(
- 'DROP' => array(
+ public static $CLAUSES = [
+ 'DROP' => [
'DROP',
2,
- ),
+ ],
// Used for options.
- '_OPTIONS' => array(
+ '_OPTIONS' => [
'_OPTIONS',
1,
- ),
+ ],
// Used for select expressions.
- 'DROP_' => array(
+ 'DROP_' => [
'DROP',
1,
- ),
- 'ON' => array(
+ ],
+ 'ON' => [
'ON',
3,
- )
- );
+ ],
+ ];
/**
* Dropped elements.
diff --git a/src/Statements/ExplainStatement.php b/src/Statements/ExplainStatement.php
index 96a5828..15e6add 100644
--- a/src/Statements/ExplainStatement.php
+++ b/src/Statements/ExplainStatement.php
@@ -1,17 +1,13 @@
<?php
-
/**
* `EXPLAIN` statement.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Statements;
/**
* `EXPLAIN` statement.
- *
- * @category Statements
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class ExplainStatement extends NotImplementedStatement
{
diff --git a/src/Statements/InsertStatement.php b/src/Statements/InsertStatement.php
index 4e48c0d..6f63235 100644
--- a/src/Statements/InsertStatement.php
+++ b/src/Statements/InsertStatement.php
@@ -1,13 +1,13 @@
<?php
-
/**
* `INSERT` statement.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Statements;
-use PhpMyAdmin\SqlParser\Components\ArrayObj;
use PhpMyAdmin\SqlParser\Components\Array2d;
+use PhpMyAdmin\SqlParser\Components\ArrayObj;
use PhpMyAdmin\SqlParser\Components\IntoKeyword;
use PhpMyAdmin\SqlParser\Components\OptionsArray;
use PhpMyAdmin\SqlParser\Components\SetOperation;
@@ -48,10 +48,6 @@ use PhpMyAdmin\SqlParser\TokensList;
* [ ON DUPLICATE KEY UPDATE
* col_name=expr
* [, col_name=expr] ... ]
- *
- * @category Statements
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class InsertStatement extends Statement
{
@@ -60,12 +56,12 @@ class InsertStatement extends Statement
*
* @var array
*/
- public static $OPTIONS = array(
+ public static $OPTIONS = [
'LOW_PRIORITY' => 1,
'DELAYED' => 2,
'HIGH_PRIORITY' => 3,
- 'IGNORE' => 4
- );
+ 'IGNORE' => 4,
+ ];
/**
* Tables used as target for this statement.
@@ -113,15 +109,15 @@ class InsertStatement extends Statement
$ret = 'INSERT ' . $this->options;
$ret = trim($ret) . ' INTO ' . $this->into;
- if (! is_null($this->values) && count($this->values) > 0) {
+ if ($this->values !== null && count($this->values) > 0) {
$ret .= ' VALUES ' . Array2d::build($this->values);
- } elseif (! is_null($this->set) && count($this->set) > 0) {
+ } elseif ($this->set !== null && count($this->set) > 0) {
$ret .= ' SET ' . SetOperation::build($this->set);
- } elseif (! is_null($this->select) && strlen($this->select) > 0) {
+ } elseif ($this->select !== null && strlen((string) $this->select) > 0) {
$ret .= ' ' . $this->select->build();
}
- if (! is_null($this->onDuplicateSet) && count($this->onDuplicateSet) > 0) {
+ if ($this->onDuplicateSet !== null && count($this->onDuplicateSet) > 0) {
$ret .= ' ON DUPLICATE KEY UPDATE ' . SetOperation::build($this->onDuplicateSet);
}
@@ -195,7 +191,7 @@ class InsertStatement extends Statement
$this->into = IntoKeyword::parse(
$parser,
$list,
- array('fromInsert' => true)
+ ['fromInsert' => true]
);
$state = 1;
diff --git a/src/Statements/LoadStatement.php b/src/Statements/LoadStatement.php
index 422efc7..62ef50f 100644
--- a/src/Statements/LoadStatement.php
+++ b/src/Statements/LoadStatement.php
@@ -1,8 +1,8 @@
<?php
-
/**
* `LOAD` statement.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Statements;
@@ -36,11 +36,6 @@ use PhpMyAdmin\SqlParser\TokensList;
* [IGNORE number {LINES | ROWS}]
* [(col_name_or_user_var,...)]
* [SET col_name = expr,...]
- *
- *
- * @category Statements
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class LoadStatement extends Statement
{
@@ -49,48 +44,48 @@ class LoadStatement extends Statement
*
* @var array
*/
- public static $OPTIONS = array(
+ public static $OPTIONS = [
'LOW_PRIORITY' => 1,
'CONCURRENT' => 1,
- 'LOCAL' => 2
- );
+ 'LOCAL' => 2,
+ ];
/**
* FIELDS/COLUMNS Options for `LOAD DATA...INFILE` statements.
*
* @var array
*/
- public static $FIELDS_OPTIONS = array(
- 'TERMINATED BY' => array(
+ public static $FIELDS_OPTIONS = [
+ 'TERMINATED BY' => [
1,
'expr',
- ),
+ ],
'OPTIONALLY' => 2,
- 'ENCLOSED BY' => array(
+ 'ENCLOSED BY' => [
3,
'expr',
- ),
- 'ESCAPED BY' => array(
+ ],
+ 'ESCAPED BY' => [
4,
'expr',
- )
- );
+ ],
+ ];
/**
* LINES Options for `LOAD DATA...INFILE` statements.
*
* @var array
*/
- public static $LINES_OPTIONS = array(
- 'STARTING BY' => array(
+ public static $LINES_OPTIONS = [
+ 'STARTING BY' => [
1,
'expr',
- ),
- 'TERMINATED BY' => array(
+ ],
+ 'TERMINATED BY' => [
2,
'expr',
- )
- );
+ ],
+ ];
/**
* File name being used to load data.
@@ -123,9 +118,9 @@ class LoadStatement extends Statement
/**
* Options for FIELDS/COLUMNS keyword.
*
- * @var OptionsArray
- *
* @see static::$FIELDS_OPTIONS
+ *
+ * @var OptionsArray
*/
public $fields_options;
@@ -139,9 +134,9 @@ class LoadStatement extends Statement
/**
* Options for OPTIONS keyword.
*
- * @var OptionsArray
- *
* @see static::$LINES_OPTIONS
+ *
+ * @var OptionsArray
*/
public $lines_options;
@@ -194,7 +189,7 @@ class LoadStatement extends Statement
$ret .= ' INTO TABLE ' . $this->table;
- if ($this->partition !== null && strlen($this->partition) > 0) {
+ if ($this->partition !== null && strlen((string) $this->partition) > 0) {
$ret .= ' PARTITION ' . ArrayObj::build($this->partition);
}
@@ -206,7 +201,7 @@ class LoadStatement extends Statement
$ret .= ' ' . $this->fields_keyword . ' ' . $this->fields_options;
}
- if ($this->lines_options !== null && strlen($this->lines_options) > 0) {
+ if ($this->lines_options !== null && strlen((string) $this->lines_options) > 0) {
$ret .= ' LINES ' . $this->lines_options;
}
@@ -281,7 +276,7 @@ class LoadStatement extends Statement
$this->file_name = Expression::parse(
$parser,
$list,
- array('parseField' => 'file')
+ ['parseField' => 'file']
);
$state = 1;
} elseif ($state === 1) {
@@ -298,7 +293,7 @@ class LoadStatement extends Statement
&& $token->keyword === 'TABLE'
) {
++$list->idx;
- $this->table = Expression::parse($parser, $list, array('parseField' => 'table'));
+ $this->table = Expression::parse($parser, $list, ['parseField' => 'table']);
$state = 3;
} else {
$parser->error('Unexpected token.', $token);
diff --git a/src/Statements/LockStatement.php b/src/Statements/LockStatement.php
index d4c6cb1..6444586 100644
--- a/src/Statements/LockStatement.php
+++ b/src/Statements/LockStatement.php
@@ -1,8 +1,8 @@
<?php
-
/**
* `LOCK` statement.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Statements;
@@ -14,10 +14,6 @@ use PhpMyAdmin\SqlParser\TokensList;
/**
* `LOCK` statement.
- *
- * @category Statements
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class LockStatement extends Statement
{
@@ -26,7 +22,7 @@ class LockStatement extends Statement
*
* @var LockExpression[]
*/
- public $locked = array();
+ public $locked = [];
/**
* Whether it's a LOCK statement
diff --git a/src/Statements/MaintenanceStatement.php b/src/Statements/MaintenanceStatement.php
index ac3b8c9..273188f 100644
--- a/src/Statements/MaintenanceStatement.php
+++ b/src/Statements/MaintenanceStatement.php
@@ -1,8 +1,8 @@
<?php
-
/**
* Maintenance statement.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Statements;
@@ -18,10 +18,6 @@ use PhpMyAdmin\SqlParser\TokensList;
*
* They follow the syntax:
* STMT [some options] tbl_name [, tbl_name] ... [some more options]
- *
- * @category Statements
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class MaintenanceStatement extends Statement
{
diff --git a/src/Statements/NotImplementedStatement.php b/src/Statements/NotImplementedStatement.php
index e534cdf..dae6f85 100644
--- a/src/Statements/NotImplementedStatement.php
+++ b/src/Statements/NotImplementedStatement.php
@@ -1,8 +1,8 @@
<?php
-
/**
* Not implemented (yet) statements.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Statements;
@@ -15,10 +15,6 @@ use PhpMyAdmin\SqlParser\TokensList;
* Not implemented (yet) statements.
*
* The `after` function makes the parser jump straight to the first delimiter.
- *
- * @category Statements
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class NotImplementedStatement extends Statement
{
@@ -27,7 +23,7 @@ class NotImplementedStatement extends Statement
*
* @var Token[]
*/
- public $unknown = array();
+ public $unknown = [];
/**
* @return string
diff --git a/src/Statements/OptimizeStatement.php b/src/Statements/OptimizeStatement.php
index 1aff056..c9c4979 100644
--- a/src/Statements/OptimizeStatement.php
+++ b/src/Statements/OptimizeStatement.php
@@ -1,8 +1,8 @@
<?php
-
/**
* `OPTIMIZE` statement.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Statements;
@@ -14,10 +14,6 @@ use PhpMyAdmin\SqlParser\Statement;
*
* OPTIMIZE [NO_WRITE_TO_BINLOG | LOCAL] TABLE
* tbl_name [, tbl_name] ...
- *
- * @category Statements
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class OptimizeStatement extends Statement
{
@@ -26,12 +22,12 @@ class OptimizeStatement extends Statement
*
* @var array
*/
- public static $OPTIONS = array(
+ public static $OPTIONS = [
'TABLE' => 1,
'NO_WRITE_TO_BINLOG' => 2,
- 'LOCAL' => 3
- );
+ 'LOCAL' => 3,
+ ];
/**
* Optimized tables.
diff --git a/src/Statements/PurgeStatement.php b/src/Statements/PurgeStatement.php
index 0374813..1f74f42 100644
--- a/src/Statements/PurgeStatement.php
+++ b/src/Statements/PurgeStatement.php
@@ -1,13 +1,12 @@
<?php
-
/**
* `PURGE` statement.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Statements;
use PhpMyAdmin\SqlParser\Components\Expression;
-use PhpMyAdmin\SqlParser\Components\OptionsArray;
use PhpMyAdmin\SqlParser\Parser;
use PhpMyAdmin\SqlParser\Statement;
use PhpMyAdmin\SqlParser\Token;
@@ -18,10 +17,6 @@ use PhpMyAdmin\SqlParser\TokensList;
*
* PURGE { BINARY | MASTER } LOGS
* { TO 'log_name' | BEFORE datetime_expr }
- *
- * @category Statements
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class PurgeStatement extends Statement
{
@@ -51,7 +46,7 @@ class PurgeStatement extends Statement
*/
public function build()
{
- $ret = 'PURGE ' . $this->log_type . ' ' . 'LOGS '
+ $ret = 'PURGE ' . $this->log_type . ' LOGS '
. ($this->end_option !== null ? ($this->end_option . ' ' . $this->end_expr) : '');
return trim($ret);
}
@@ -71,6 +66,7 @@ class PurgeStatement extends Statement
*/
$state = 0;
+ $prevToken = null;
for (; $list->idx < $list->count; ++$list->idx) {
/**
* Token parsed at this moment.
@@ -92,19 +88,19 @@ class PurgeStatement extends Statement
switch ($state) {
case 0:
// parse `{ BINARY | MASTER }`
- $this->log_type = self::parseExpectedKeyword($parser, $token, array('BINARY', 'MASTER'));
+ $this->log_type = self::parseExpectedKeyword($parser, $token, ['BINARY', 'MASTER']);
break;
case 1:
// parse `LOGS`
- self::parseExpectedKeyword($parser, $token, array('LOGS'));
+ self::parseExpectedKeyword($parser, $token, ['LOGS']);
break;
case 2:
// parse `{ TO | BEFORE }`
- $this->end_option = self::parseExpectedKeyword($parser, $token, array('TO', 'BEFORE'));
+ $this->end_option = self::parseExpectedKeyword($parser, $token, ['TO', 'BEFORE']);
break;
case 3:
// parse `expr`
- $this->end_expr = Expression::parse($parser, $list, array());
+ $this->end_expr = Expression::parse($parser, $list, []);
break;
default:
$parser->error('Unexpected token.', $token);
diff --git a/src/Statements/RenameStatement.php b/src/Statements/RenameStatement.php
index e1bcf0d..6e3d0ec 100644
--- a/src/Statements/RenameStatement.php
+++ b/src/Statements/RenameStatement.php
@@ -1,8 +1,8 @@
<?php
-
/**
* `RENAME` statement.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Statements;
@@ -17,10 +17,6 @@ use PhpMyAdmin\SqlParser\TokensList;
*
* RENAME TABLE tbl_name TO new_tbl_name
* [, tbl_name2 TO new_tbl_name2] ...
- *
- * @category Statements
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class RenameStatement extends Statement
{
diff --git a/src/Statements/RepairStatement.php b/src/Statements/RepairStatement.php
index fb76855..ee96e3b 100644
--- a/src/Statements/RepairStatement.php
+++ b/src/Statements/RepairStatement.php
@@ -1,8 +1,8 @@
<?php
-
/**
* `REPAIR` statement.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Statements;
@@ -12,10 +12,6 @@ namespace PhpMyAdmin\SqlParser\Statements;
* REPAIR [NO_WRITE_TO_BINLOG | LOCAL] TABLE
* tbl_name [, tbl_name] ...
* [QUICK] [EXTENDED] [USE_FRM]
- *
- * @category Statements
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class RepairStatement extends MaintenanceStatement
{
@@ -24,7 +20,7 @@ class RepairStatement extends MaintenanceStatement
*
* @var array
*/
- public static $OPTIONS = array(
+ public static $OPTIONS = [
'TABLE' => 1,
'NO_WRITE_TO_BINLOG' => 2,
@@ -32,6 +28,6 @@ class RepairStatement extends MaintenanceStatement
'QUICK' => 4,
'EXTENDED' => 5,
- 'USE_FRM' => 6
- );
+ 'USE_FRM' => 6,
+ ];
}
diff --git a/src/Statements/ReplaceStatement.php b/src/Statements/ReplaceStatement.php
index d912da0..132eef8 100644
--- a/src/Statements/ReplaceStatement.php
+++ b/src/Statements/ReplaceStatement.php
@@ -1,8 +1,8 @@
<?php
-
/**
* `REPLACE` statement.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Statements;
@@ -35,10 +35,6 @@ use PhpMyAdmin\SqlParser\TokensList;
* [PARTITION (partition_name,...)]
* [(col_name,...)]
* SELECT ...
- *
- * @category Statements
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class ReplaceStatement extends Statement
{
@@ -47,10 +43,10 @@ class ReplaceStatement extends Statement
*
* @var array
*/
- public static $OPTIONS = array(
+ public static $OPTIONS = [
'LOW_PRIORITY' => 1,
- 'DELAYED' => 1
- );
+ 'DELAYED' => 1,
+ ];
/**
* Tables used as target for this statement.
@@ -90,11 +86,11 @@ class ReplaceStatement extends Statement
$ret = 'REPLACE ' . $this->options;
$ret = trim($ret) . ' INTO ' . $this->into;
- if (! is_null($this->values) && count($this->values) > 0) {
+ if ($this->values !== null && count($this->values) > 0) {
$ret .= ' VALUES ' . Array2d::build($this->values);
- } elseif (! is_null($this->set) && count($this->set) > 0) {
+ } elseif ($this->set !== null && count($this->set) > 0) {
$ret .= ' SET ' . SetOperation::build($this->set);
- } elseif (! is_null($this->select) && strlen($this->select) > 0) {
+ } elseif ($this->select !== null && strlen((string) $this->select) > 0) {
$ret .= ' ' . $this->select->build();
}
@@ -160,7 +156,7 @@ class ReplaceStatement extends Statement
$this->into = IntoKeyword::parse(
$parser,
$list,
- array('fromReplace' => true)
+ ['fromReplace' => true]
);
$state = 1;
diff --git a/src/Statements/RestoreStatement.php b/src/Statements/RestoreStatement.php
index a7bf2c8..72b2ea2 100644
--- a/src/Statements/RestoreStatement.php
+++ b/src/Statements/RestoreStatement.php
@@ -1,8 +1,8 @@
<?php
-
/**
* `RESTORE` statement.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Statements;
@@ -10,10 +10,6 @@ namespace PhpMyAdmin\SqlParser\Statements;
* `RESTORE` statement.
*
* RESTORE TABLE tbl_name [, tbl_name] ... FROM '/path/to/backup/directory'
- *
- * @category Statements
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class RestoreStatement extends MaintenanceStatement
{
@@ -22,12 +18,12 @@ class RestoreStatement extends MaintenanceStatement
*
* @var array
*/
- public static $OPTIONS = array(
+ public static $OPTIONS = [
'TABLE' => 1,
- 'FROM' => array(
+ 'FROM' => [
2,
'var',
- )
- );
+ ],
+ ];
}
diff --git a/src/Statements/SelectStatement.php b/src/Statements/SelectStatement.php
index 852dc0b..4fecd90 100644
--- a/src/Statements/SelectStatement.php
+++ b/src/Statements/SelectStatement.php
@@ -1,8 +1,8 @@
<?php
-
/**
* `SELECT` statement.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Statements;
@@ -33,10 +33,10 @@ use PhpMyAdmin\SqlParser\Statement;
* [PARTITION partition_list]
* [WHERE where_condition]
* [GROUP BY {col_name | expr | position}
- * [ASC | DESC), ... [WITH ROLLUP]]
+ * [ASC | DESC], ... [WITH ROLLUP]]
* [HAVING where_condition]
* [ORDER BY {col_name | expr | position}
- * [ASC | DESC), ...]
+ * [ASC | DESC], ...]
* [LIMIT {[offset,] row_count | row_count OFFSET offset}]
* [PROCEDURE procedure_name(argument_list)]
* [INTO OUTFILE 'file_name'
@@ -45,10 +45,6 @@ use PhpMyAdmin\SqlParser\Statement;
* | INTO DUMPFILE 'file_name'
* | INTO var_name [, var_name]]
* [FOR UPDATE | LOCK IN SHARE MODE]]
- *
- * @category Statements
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class SelectStatement extends Statement
{
@@ -57,28 +53,28 @@ class SelectStatement extends Statement
*
* @var array
*/
- public static $OPTIONS = array(
+ public static $OPTIONS = [
'ALL' => 1,
'DISTINCT' => 1,
'DISTINCTROW' => 1,
'HIGH_PRIORITY' => 2,
- 'MAX_STATEMENT_TIME' => array(
+ 'MAX_STATEMENT_TIME' => [
3,
'var=',
- ),
+ ],
'STRAIGHT_JOIN' => 4,
'SQL_SMALL_RESULT' => 5,
'SQL_BIG_RESULT' => 6,
'SQL_BUFFER_RESULT' => 7,
'SQL_CACHE' => 8,
'SQL_NO_CACHE' => 8,
- 'SQL_CALC_FOUND_ROWS' => 9
- );
+ 'SQL_CALC_FOUND_ROWS' => 9,
+ ];
- public static $END_OPTIONS = array(
+ public static $END_OPTIONS = [
'FOR UPDATE' => 1,
- 'LOCK IN SHARE MODE' => 1
- );
+ 'LOCK IN SHARE MODE' => 1,
+ ];
/**
* The clauses of this statement, in order.
@@ -87,153 +83,153 @@ class SelectStatement extends Statement
*
* @var array
*/
- public static $CLAUSES = array(
- 'SELECT' => array(
+ public static $CLAUSES = [
+ 'SELECT' => [
'SELECT',
2,
- ),
+ ],
// Used for options.
- '_OPTIONS' => array(
+ '_OPTIONS' => [
'_OPTIONS',
1,
- ),
+ ],
// Used for selected expressions.
- '_SELECT' => array(
+ '_SELECT' => [
'SELECT',
1,
- ),
- 'INTO' => array(
+ ],
+ 'INTO' => [
'INTO',
3,
- ),
- 'FROM' => array(
+ ],
+ 'FROM' => [
'FROM',
3,
- ),
- 'FORCE' => array(
+ ],
+ 'FORCE' => [
'FORCE',
1,
- ),
- 'USE' => array(
+ ],
+ 'USE' => [
'USE',
1,
- ),
- 'IGNORE' => array(
+ ],
+ 'IGNORE' => [
'IGNORE',
3,
- ),
- 'PARTITION' => array(
+ ],
+ 'PARTITION' => [
'PARTITION',
3,
- ),
+ ],
- 'JOIN' => array(
+ 'JOIN' => [
'JOIN',
1,
- ),
- 'FULL JOIN' => array(
+ ],
+ 'FULL JOIN' => [
'FULL JOIN',
1,
- ),
- 'INNER JOIN' => array(
+ ],
+ 'INNER JOIN' => [
'INNER JOIN',
1,
- ),
- 'LEFT JOIN' => array(
+ ],
+ 'LEFT JOIN' => [
'LEFT JOIN',
1,
- ),
- 'LEFT OUTER JOIN' => array(
+ ],
+ 'LEFT OUTER JOIN' => [
'LEFT OUTER JOIN',
1,
- ),
- 'RIGHT JOIN' => array(
+ ],
+ 'RIGHT JOIN' => [
'RIGHT JOIN',
1,
- ),
- 'RIGHT OUTER JOIN' => array(
+ ],
+ 'RIGHT OUTER JOIN' => [
'RIGHT OUTER JOIN',
1,
- ),
- 'NATURAL JOIN' => array(
+ ],
+ 'NATURAL JOIN' => [
'NATURAL JOIN',
1,
- ),
- 'NATURAL LEFT JOIN' => array(
+ ],
+ 'NATURAL LEFT JOIN' => [
'NATURAL LEFT JOIN',
1,
- ),
- 'NATURAL RIGHT JOIN' => array(
+ ],
+ 'NATURAL RIGHT JOIN' => [
'NATURAL RIGHT JOIN',
1,
- ),
- 'NATURAL LEFT OUTER JOIN' => array(
+ ],
+ 'NATURAL LEFT OUTER JOIN' => [
'NATURAL LEFT OUTER JOIN',
1,
- ),
- 'NATURAL RIGHT OUTER JOIN' => array(
+ ],
+ 'NATURAL RIGHT OUTER JOIN' => [
'NATURAL RIGHT JOIN',
1,
- ),
+ ],
- 'WHERE' => array(
+ 'WHERE' => [
'WHERE',
3,
- ),
- 'GROUP BY' => array(
+ ],
+ 'GROUP BY' => [
'GROUP BY',
3,
- ),
- 'HAVING' => array(
+ ],
+ 'HAVING' => [
'HAVING',
3,
- ),
- 'ORDER BY' => array(
+ ],
+ 'ORDER BY' => [
'ORDER BY',
3,
- ),
- 'LIMIT' => array(
+ ],
+ 'LIMIT' => [
'LIMIT',
3,
- ),
- 'PROCEDURE' => array(
+ ],
+ 'PROCEDURE' => [
'PROCEDURE',
3,
- ),
- 'UNION' => array(
+ ],
+ 'UNION' => [
'UNION',
1,
- ),
- 'EXCEPT' => array(
+ ],
+ 'EXCEPT' => [
'EXCEPT',
1,
- ),
- 'INTERSECT' => array(
+ ],
+ 'INTERSECT' => [
'INTERSECT',
1,
- ),
- '_END_OPTIONS' => array(
+ ],
+ '_END_OPTIONS' => [
'_END_OPTIONS',
1,
- ),
+ ],
// These are available only when `UNION` is present.
- // 'ORDER BY' => array('ORDER BY', 3),
- // 'LIMIT' => array('LIMIT', 3)
- );
+ // 'ORDER BY' => ['ORDER BY', 3],
+ // 'LIMIT' => ['LIMIT', 3],
+ ];
/**
* Expressions that are being selected by this statement.
*
* @var Expression[]
*/
- public $expr = array();
+ public $expr = [];
/**
* Tables used as sources for this statement.
*
* @var Expression[]
*/
- public $from = array();
+ public $from = [];
/**
* Index hints
@@ -310,14 +306,14 @@ class SelectStatement extends Statement
*
* @var SelectStatement[]
*/
- public $union = array();
+ public $union = [];
/**
* The end options of this query.
*
- * @var OptionsArray
- *
* @see static::$END_OPTIONS
+ *
+ * @var OptionsArray
*/
public $end_options;
@@ -334,14 +330,14 @@ class SelectStatement extends Statement
if (! empty($this->union)) {
$clauses = static::$CLAUSES;
unset($clauses['ORDER BY'], $clauses['LIMIT']);
- $clauses['ORDER BY'] = array(
+ $clauses['ORDER BY'] = [
'ORDER BY',
- 3
- );
- $clauses['LIMIT'] = array(
+ 3,
+ ];
+ $clauses['LIMIT'] = [
'LIMIT',
- 3
- );
+ 3,
+ ];
return $clauses;
}
diff --git a/src/Statements/SetStatement.php b/src/Statements/SetStatement.php
index d62b6f0..80a1dc7 100644
--- a/src/Statements/SetStatement.php
+++ b/src/Statements/SetStatement.php
@@ -1,8 +1,8 @@
<?php
-
/**
* `SET` statement.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Statements;
@@ -12,10 +12,6 @@ use PhpMyAdmin\SqlParser\Statement;
/**
* `SET` statement.
- *
- * @category Statements
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class SetStatement extends Statement
{
@@ -26,39 +22,39 @@ class SetStatement extends Statement
*
* @var array
*/
- public static $CLAUSES = array(
- 'SET' => array(
+ public static $CLAUSES = [
+ 'SET' => [
'SET',
- 3
- ),
- '_END_OPTIONS' => array(
+ 3,
+ ],
+ '_END_OPTIONS' => [
'_END_OPTIONS',
- 1
- )
- );
+ 1,
+ ],
+ ];
/**
* Possible exceptions in SET statment.
*
* @var array
*/
- public static $OPTIONS = array(
- 'CHARSET' => array(
+ public static $OPTIONS = [
+ 'CHARSET' => [
3,
'var',
- ),
- 'CHARACTER SET' => array(
+ ],
+ 'CHARACTER SET' => [
3,
'var',
- ),
- 'NAMES' => array(
+ ],
+ 'NAMES' => [
3,
'var',
- ),
- 'PASSWORD' => array(
+ ],
+ 'PASSWORD' => [
3,
'expr',
- ),
+ ],
'SESSION' => 3,
'GLOBAL' => 3,
'PERSIST' => 3,
@@ -67,15 +63,15 @@ class SetStatement extends Statement
'@@GLOBAL' => 3,
'@@PERSIST' => 3,
'@@PERSIST_ONLY' => 3,
- );
+ ];
- public static $END_OPTIONS = array(
- 'COLLATE' => array(
+ public static $END_OPTIONS = [
+ 'COLLATE' => [
1,
'var',
- ),
- 'DEFAULT' => 1
- );
+ ],
+ 'DEFAULT' => 1,
+ ];
/**
* Options used in current statement.
@@ -87,9 +83,9 @@ class SetStatement extends Statement
/**
* The end options of this query.
*
- * @var OptionsArray
- *
* @see static::$END_OPTIONS
+ *
+ * @var OptionsArray
*/
public $end_options;
diff --git a/src/Statements/ShowStatement.php b/src/Statements/ShowStatement.php
index 1e9e67e..266b74e 100644
--- a/src/Statements/ShowStatement.php
+++ b/src/Statements/ShowStatement.php
@@ -1,17 +1,13 @@
<?php
-
/**
* `SHOW` statement.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Statements;
/**
* `SHOW` statement.
- *
- * @category Statements
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class ShowStatement extends NotImplementedStatement
{
@@ -20,7 +16,7 @@ class ShowStatement extends NotImplementedStatement
*
* @var array
*/
- public static $OPTIONS = array(
+ public static $OPTIONS = [
'CREATE' => 1,
'AUTHORS' => 2,
'BINARY' => 2,
@@ -61,6 +57,6 @@ class ShowStatement extends NotImplementedStatement
'TRIGGERS' => 2,
'VARIABLES' => 2,
'VIEW' => 2,
- 'WARNINGS' => 2
- );
+ 'WARNINGS' => 2,
+ ];
}
diff --git a/src/Statements/TransactionStatement.php b/src/Statements/TransactionStatement.php
index 59bd9c6..f47f86f 100644
--- a/src/Statements/TransactionStatement.php
+++ b/src/Statements/TransactionStatement.php
@@ -1,8 +1,8 @@
<?php
-
/**
* Transaction statement.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Statements;
@@ -13,10 +13,6 @@ use PhpMyAdmin\SqlParser\TokensList;
/**
* Transaction statement.
- *
- * @category Statements
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class TransactionStatement extends Statement
{
@@ -60,7 +56,7 @@ class TransactionStatement extends Statement
*
* @var array
*/
- public static $OPTIONS = array(
+ public static $OPTIONS = [
'START TRANSACTION' => 1,
'BEGIN' => 1,
'COMMIT' => 1,
@@ -70,8 +66,8 @@ class TransactionStatement extends Statement
'AND NO CHAIN' => 3,
'AND CHAIN' => 3,
'RELEASE' => 4,
- 'NO RELEASE' => 4
- );
+ 'NO RELEASE' => 4,
+ ];
/**
* @param Parser $parser the instance that requests parsing
diff --git a/src/Statements/TruncateStatement.php b/src/Statements/TruncateStatement.php
index 13a4d21..9397573 100644
--- a/src/Statements/TruncateStatement.php
+++ b/src/Statements/TruncateStatement.php
@@ -1,8 +1,8 @@
<?php
-
/**
* `TRUNCATE` statement.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Statements;
@@ -11,10 +11,6 @@ use PhpMyAdmin\SqlParser\Statement;
/**
* `TRUNCATE` statement.
- *
- * @category Statements
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class TruncateStatement extends Statement
{
@@ -23,9 +19,9 @@ class TruncateStatement extends Statement
*
* @var array
*/
- public static $OPTIONS = array(
- 'TABLE' => 1
- );
+ public static $OPTIONS = [
+ 'TABLE' => 1,
+ ];
/**
* The name of the truncated table.
diff --git a/src/Statements/UpdateStatement.php b/src/Statements/UpdateStatement.php
index da7d741..82adeb1 100644
--- a/src/Statements/UpdateStatement.php
+++ b/src/Statements/UpdateStatement.php
@@ -1,8 +1,8 @@
<?php
-
/**
* `UPDATE` statement.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Statements;
@@ -27,10 +27,6 @@ use PhpMyAdmin\SqlParser\Statement;
* UPDATE [LOW_PRIORITY] [IGNORE] table_references
* SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ...
* [WHERE where_condition]
- *
- * @category Statements
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class UpdateStatement extends Statement
{
@@ -39,10 +35,10 @@ class UpdateStatement extends Statement
*
* @var array
*/
- public static $OPTIONS = array(
+ public static $OPTIONS = [
'LOW_PRIORITY' => 1,
- 'IGNORE' => 2
- );
+ 'IGNORE' => 2,
+ ];
/**
* The clauses of this statement, in order.
@@ -51,38 +47,38 @@ class UpdateStatement extends Statement
*
* @var array
*/
- public static $CLAUSES = array(
- 'UPDATE' => array(
+ public static $CLAUSES = [
+ 'UPDATE' => [
'UPDATE',
2,
- ),
+ ],
// Used for options.
- '_OPTIONS' => array(
+ '_OPTIONS' => [
'_OPTIONS',
1,
- ),
+ ],
// Used for updated tables.
- '_UPDATE' => array(
+ '_UPDATE' => [
'UPDATE',
1,
- ),
- 'SET' => array(
+ ],
+ 'SET' => [
'SET',
3,
- ),
- 'WHERE' => array(
+ ],
+ 'WHERE' => [
'WHERE',
3,
- ),
- 'ORDER BY' => array(
+ ],
+ 'ORDER BY' => [
'ORDER BY',
3,
- ),
- 'LIMIT' => array(
+ ],
+ 'LIMIT' => [
'LIMIT',
3,
- )
- );
+ ],
+ ];
/**
* Tables used as sources for this statement.
diff --git a/src/Token.php b/src/Token.php
index f2f9860..23d1645 100644
--- a/src/Token.php
+++ b/src/Token.php
@@ -1,20 +1,16 @@
<?php
-
/**
* Defines a token along with a set of types and flags and utility functions.
*
* An array of tokens will result after parsing the query.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser;
/**
* A structure representing a lexeme that explicitly indicates its
* categorization for the purpose of parsing.
- *
- * @category Tokens
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class Token
{
@@ -215,8 +211,6 @@ class Token
public $position;
/**
- * Constructor.
- *
* @param string $token the value of the token
* @param int $type the type of the token
* @param int $flags the flags of the token
@@ -300,7 +294,7 @@ class Token
// in PHP 5.3- the `null` parameter isn't handled correctly.
$str = mb_substr(
$str,
- (! empty($str[1]) && ($str[1] === '@')) ? 2 : 1,
+ ! empty($str[1]) && ($str[1] === '@') ? 2 : 1,
mb_strlen($str),
'UTF-8'
);
@@ -330,16 +324,16 @@ class Token
public function getInlineToken()
{
return str_replace(
- array(
+ [
"\r",
"\n",
"\t",
- ),
- array(
+ ],
+ [
'\r',
'\n',
'\t',
- ),
+ ],
$this->token
);
}
diff --git a/src/TokensList.php b/src/TokensList.php
index 4a3eec6..e8ff733 100644
--- a/src/TokensList.php
+++ b/src/TokensList.php
@@ -1,26 +1,24 @@
<?php
-
/**
* Defines an array of tokens and utility functions to iterate through it.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser;
+use ArrayAccess;
+
/**
* A structure representing a list of tokens.
- *
- * @category Tokens
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
-class TokensList implements \ArrayAccess
+class TokensList implements ArrayAccess
{
/**
* The array of tokens.
*
* @var array
*/
- public $tokens = array();
+ public $tokens = [];
/**
* The count of tokens.
@@ -37,12 +35,10 @@ class TokensList implements \ArrayAccess
public $idx = 0;
/**
- * Constructor.
- *
* @param array $tokens the initial array of tokens
* @param int $count the count of tokens in the initial array
*/
- public function __construct(array $tokens = array(), $count = -1)
+ public function __construct(array $tokens = [], $count = -1)
{
if (! empty($tokens)) {
$this->tokens = $tokens;
diff --git a/src/Translator.php b/src/Translator.php
index 622bec9..36c519f 100644
--- a/src/Translator.php
+++ b/src/Translator.php
@@ -1,17 +1,19 @@
<?php
-
/**
* Defines the localization helper infrastructure of the library.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser;
+use PhpMyAdmin\MoTranslator\Loader;
+
class Translator
{
/**
* The MoTranslator loader object.
*
- * @var \PhpMyAdmin\MoTranslator\Loader
+ * @var Loader
*/
private static $loader;
@@ -27,9 +29,9 @@ class Translator
*/
public static function load()
{
- if (is_null(self::$loader)) {
+ if (self::$loader === null) {
// Create loader object
- self::$loader = new \PhpMyAdmin\MoTranslator\Loader();
+ self::$loader = new Loader();
// Set locale
self::$loader->setlocale(
@@ -43,7 +45,7 @@ class Translator
self::$loader->bindtextdomain('sqlparser', __DIR__ . '/../locale/');
}
- if (is_null(self::$translator)) {
+ if (self::$translator === null) {
// Get translator
self::$translator = self::$loader->getTranslator();
}
diff --git a/src/UtfString.php b/src/UtfString.php
index 5127b5b..cb4187c 100644
--- a/src/UtfString.php
+++ b/src/UtfString.php
@@ -1,5 +1,4 @@
<?php
-
/**
* Implementation for UTF-8 strings.
*
@@ -10,19 +9,19 @@
* Because the lexer relies on the subscript operator this class had to be
* implemented.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser;
+use ArrayAccess;
+use Exception;
+
/**
* Implements array-like access for UTF-8 strings.
*
* In this library, this class should be used to parse UTF-8 queries.
- *
- * @category Misc
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
-class UtfString implements \ArrayAccess
+class UtfString implements ArrayAccess
{
/**
* The raw, multi-byte string.
@@ -65,8 +64,6 @@ class UtfString implements \ArrayAccess
public $charLen = 0;
/**
- * Constructor.
- *
* @param string $str the string
*/
public function __construct($str)
@@ -141,11 +138,11 @@ class UtfString implements \ArrayAccess
* @param int $offset the offset to be set
* @param string $value the value to be set
*
- * @throws \Exception not implemented
+ * @throws Exception not implemented.
*/
public function offsetSet($offset, $value)
{
- throw new \Exception('Not implemented.');
+ throw new Exception('Not implemented.');
}
/**
@@ -153,11 +150,11 @@ class UtfString implements \ArrayAccess
*
* @param int $offset the value to be unset
*
- * @throws \Exception not implemented
+ * @throws Exception not implemented.
*/
public function offsetUnset($offset)
{
- throw new \Exception('Not implemented.');
+ throw new Exception('Not implemented.');
}
/**
@@ -167,10 +164,10 @@ class UtfString implements \ArrayAccess
* However, this implementation supports UTF-8 characters containing up to 6
* bytes.
*
- * @param string $byte the byte to be analyzed
- *
* @see https://tools.ietf.org/html/rfc3629
*
+ * @param string $byte the byte to be analyzed
+ *
* @return int
*/
public static function getCharLength($byte)
diff --git a/src/Utils/BufferedQuery.php b/src/Utils/BufferedQuery.php
index 7361949..a2d6705 100644
--- a/src/Utils/BufferedQuery.php
+++ b/src/Utils/BufferedQuery.php
@@ -1,8 +1,8 @@
<?php
-
/**
* Buffered query utilities.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Utils;
@@ -14,10 +14,6 @@ use PhpMyAdmin\SqlParser\Context;
* Implements a specialized lexer used to extract statements from large inputs
* that are being buffered. After each statement has been extracted, a lexer or
* a parser may be used.
- *
- * @category Lexer
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class BufferedQuery
{
@@ -49,7 +45,7 @@ class BufferedQuery
*
* @var array
*/
- public $options = array();
+ public $options = [];
/**
* The last delimiter used.
@@ -80,16 +76,14 @@ class BufferedQuery
public $current = '';
/**
- * Constructor.
- *
* @param string $query the query to be parsed
* @param array $options the options of this parser
*/
- public function __construct($query = '', array $options = array())
+ public function __construct($query = '', array $options = [])
{
// Merges specified options with defaults.
$this->options = array_merge(
- array(
+ [
/*
* The starting delimiter.
*
@@ -111,7 +105,7 @@ class BufferedQuery
* @var bool
*/
'add_delimiter' => false,
- ),
+ ],
$options
);
diff --git a/src/Utils/CLI.php b/src/Utils/CLI.php
index d47af23..31eda8f 100644
--- a/src/Utils/CLI.php
+++ b/src/Utils/CLI.php
@@ -1,8 +1,8 @@
<?php
-
/**
* CLI interface.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Utils;
@@ -12,10 +12,6 @@ use PhpMyAdmin\SqlParser\Parser;
/**
* CLI interface.
- *
- * @category Exceptions
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class CLI
{
@@ -42,11 +38,11 @@ class CLI
public function parseHighlight()
{
- $longopts = array(
+ $longopts = [
'help',
'query:',
- 'format:'
- );
+ 'format:',
+ ];
$params = $this->getopt(
'hq:f:',
$longopts
@@ -58,7 +54,7 @@ class CLI
if (! isset($params['f'])) {
$params['f'] = 'cli';
}
- if (! in_array($params['f'], array('html', 'cli', 'text'))) {
+ if (! in_array($params['f'], ['html', 'cli', 'text'])) {
echo "ERROR: Invalid value for format!\n";
return false;
@@ -78,7 +74,7 @@ class CLI
return 0;
}
- if (!isset($params['q'])) {
+ if (! isset($params['q'])) {
if ($stdIn = $this->readStdin()) {
$params['q'] = $stdIn;
}
@@ -86,7 +82,7 @@ class CLI
if (isset($params['q'])) {
echo Formatter::format(
$params['q'],
- array('type' => $params['f'])
+ ['type' => $params['f']]
);
echo "\n";
@@ -106,11 +102,11 @@ class CLI
public function parseLint()
{
- $longopts = array(
+ $longopts = [
'help',
'query:',
- 'context:'
- );
+ 'context:',
+ ];
$params = $this->getopt(
'hq:c:',
$longopts
@@ -134,7 +130,7 @@ class CLI
if (isset($params['c'])) {
Context::load($params['c']);
}
- if (!isset($params['q'])) {
+ if (! isset($params['q'])) {
if ($stdIn = $this->readStdin()) {
$params['q'] = $stdIn;
}
@@ -142,7 +138,7 @@ class CLI
if (isset($params['q'])) {
$lexer = new Lexer($params['q'], false);
$parser = new Parser($lexer->list);
- $errors = Error::get(array($lexer, $parser));
+ $errors = Error::get([$lexer, $parser]);
if (count($errors) === 0) {
return 0;
}
@@ -166,10 +162,10 @@ class CLI
public function parseTokenize()
{
- $longopts = array(
+ $longopts = [
'help',
- 'query:'
- );
+ 'query:',
+ ];
$params = $this->getopt(
'hq:',
$longopts
@@ -190,7 +186,7 @@ class CLI
return 0;
}
- if (!isset($params['q'])) {
+ if (! isset($params['q'])) {
if ($stdIn = $this->readStdin()) {
$params['q'] = $stdIn;
}
@@ -218,7 +214,8 @@ class CLI
return 1;
}
- public function readStdin() {
+ public function readStdin()
+ {
stream_set_blocking(STDIN, false);
$stdin = stream_get_contents(STDIN);
// restore-default block-mode setting
diff --git a/src/Utils/Error.php b/src/Utils/Error.php
index 20310a1..789da0e 100644
--- a/src/Utils/Error.php
+++ b/src/Utils/Error.php
@@ -1,20 +1,18 @@
<?php
-
/**
* Error related utilities.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Utils;
+use PhpMyAdmin\SqlParser\Exceptions\LexerException;
+use PhpMyAdmin\SqlParser\Exceptions\ParserException;
use PhpMyAdmin\SqlParser\Lexer;
use PhpMyAdmin\SqlParser\Parser;
/**
* Error related utilities.
- *
- * @category Exceptions
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class Error
{
@@ -28,30 +26,32 @@ class Error
* `$err[1]` holds the error code.
* `$err[2]` holds the string that caused the issue.
* `$err[3]` holds the position of the string.
- * (i.e. `array($msg, $code, $str, $pos)`)
+ * (i.e. `[$msg, $code, $str, $pos]`)
*/
public static function get($objs)
{
- $ret = array();
+ $ret = [];
foreach ($objs as $obj) {
if ($obj instanceof Lexer) {
+ /** @var LexerException $err */
foreach ($obj->errors as $err) {
- $ret[] = array(
+ $ret[] = [
$err->getMessage(),
$err->getCode(),
$err->ch,
- $err->pos
- );
+ $err->pos,
+ ];
}
} elseif ($obj instanceof Parser) {
+ /** @var ParserException $err */
foreach ($obj->errors as $err) {
- $ret[] = array(
+ $ret[] = [
$err->getMessage(),
$err->getCode(),
$err->token->token,
- $err->token->position
- );
+ $err->token->position,
+ ];
}
}
}
@@ -77,7 +77,7 @@ class Error
$errors,
$format = '#%1$d: %2$s (near "%4$s" at position %5$d)'
) {
- $ret = array();
+ $ret = [];
$i = 0;
foreach ($errors as $key => $err) {
@@ -86,7 +86,7 @@ class Error
++$i,
$err[0],
$err[1],
- htmlspecialchars($err[2]),
+ htmlspecialchars((string) $err[2]),
$err[3]
);
}
diff --git a/src/Utils/Formatter.php b/src/Utils/Formatter.php
index b608b73..017d5b1 100644
--- a/src/Utils/Formatter.php
+++ b/src/Utils/Formatter.php
@@ -1,8 +1,8 @@
<?php
-
/**
* Utilities that are used for formatting queries.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Utils;
@@ -14,10 +14,6 @@ use PhpMyAdmin\SqlParser\TokensList;
/**
* Utilities that are used for formatting queries.
- *
- * @category Misc
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class Formatter
{
@@ -46,10 +42,10 @@ class Formatter
*
* @var array
*/
- public static $SHORT_CLAUSES = array(
+ public static $SHORT_CLAUSES = [
'CREATE' => true,
- 'INSERT' => true
- );
+ 'INSERT' => true,
+ ];
/**
* Clauses that must be inlined.
@@ -58,7 +54,7 @@ class Formatter
*
* @var array
*/
- public static $INLINE_CLAUSES = array(
+ public static $INLINE_CLAUSES = [
'CREATE' => true,
'INTO' => true,
'LIMIT' => true,
@@ -66,15 +62,13 @@ class Formatter
'PARTITION' => true,
'PROCEDURE' => true,
'SUBPARTITION BY' => true,
- 'VALUES' => true
- );
+ 'VALUES' => true,
+ ];
/**
- * Constructor.
- *
* @param array $options the formatting options
*/
- public function __construct(array $options = array())
+ public function __construct(array $options = [])
{
$this->options = $this->getMergedOptions($options);
}
@@ -99,11 +93,11 @@ class Formatter
$options['formats'] = $this->getDefaultFormats();
}
- if (is_null($options['line_ending'])) {
+ if ($options['line_ending'] === null) {
$options['line_ending'] = $options['type'] === 'html' ? '<br/>' : "\n";
}
- if (is_null($options['indentation'])) {
+ if ($options['indentation'] === null) {
$options['indentation'] = $options['type'] === 'html' ? '&nbsp;&nbsp;&nbsp;&nbsp;' : ' ';
}
@@ -120,7 +114,7 @@ class Formatter
*/
protected function getDefaultOptions()
{
- return array(
+ return [
/*
* The format of the result.
*
@@ -170,90 +164,90 @@ class Formatter
*
* @var bool
*/
- 'indent_parts' => true
- );
+ 'indent_parts' => true,
+ ];
}
/**
* The styles used for HTML formatting.
- * array($type, $flags, $span, $callback).
+ * [$type, $flags, $span, $callback].
*
* @return array
*/
protected function getDefaultFormats()
{
- return array(
- array(
+ return [
+ [
'type' => Token::TYPE_KEYWORD,
'flags' => Token::FLAG_KEYWORD_RESERVED,
'html' => 'class="sql-reserved"',
'cli' => "\x1b[35m",
'function' => 'strtoupper',
- ),
- array(
+ ],
+ [
'type' => Token::TYPE_KEYWORD,
'flags' => 0,
'html' => 'class="sql-keyword"',
'cli' => "\x1b[95m",
'function' => 'strtoupper',
- ),
- array(
+ ],
+ [
'type' => Token::TYPE_COMMENT,
'flags' => 0,
'html' => 'class="sql-comment"',
'cli' => "\x1b[37m",
'function' => '',
- ),
- array(
+ ],
+ [
'type' => Token::TYPE_BOOL,
'flags' => 0,
'html' => 'class="sql-atom"',
'cli' => "\x1b[36m",
'function' => 'strtoupper',
- ),
- array(
+ ],
+ [
'type' => Token::TYPE_NUMBER,
'flags' => 0,
'html' => 'class="sql-number"',
'cli' => "\x1b[92m",
'function' => 'strtolower',
- ),
- array(
+ ],
+ [
'type' => Token::TYPE_STRING,
'flags' => 0,
'html' => 'class="sql-string"',
'cli' => "\x1b[91m",
'function' => '',
- ),
- array(
+ ],
+ [
'type' => Token::TYPE_SYMBOL,
'flags' => Token::FLAG_SYMBOL_PARAMETER,
'html' => 'class="sql-parameter"',
'cli' => "\x1b[31m",
'function' => '',
- ),
- array(
+ ],
+ [
'type' => Token::TYPE_SYMBOL,
'flags' => 0,
'html' => 'class="sql-variable"',
'cli' => "\x1b[36m",
'function' => '',
- )
- );
+ ],
+ ];
}
private static function mergeFormats(array $formats, array $newFormats)
{
- $added = array();
- $integers = array(
+ $added = [];
+ $integers = [
'flags',
- 'type'
- );
- $strings = array(
+ 'type',
+ ];
+ $strings = [
'html',
'cli',
- 'function'
- );
+ 'function',
+ ];
/* Sanitize the array so that we do not have to care later */
foreach ($newFormats as $j => $new) {
@@ -341,7 +335,7 @@ class Formatter
*
* @var array
*/
- $blocksIndentation = array();
+ $blocksIndentation = [];
/**
* A stack that keeps track of the line endings every time a new block
@@ -349,7 +343,7 @@ class Formatter
*
* @var array
*/
- $blocksLineEndings = array();
+ $blocksLineEndings = [];
/**
* Whether clause's options were formatted.
@@ -437,7 +431,7 @@ class Formatter
// Inline JOINs
if (($prev->type === Token::TYPE_KEYWORD && isset(JoinKeyword::$JOINS[$prev->value]))
- || (in_array($curr->value, array('ON', 'USING'), true) && isset(JoinKeyword::$JOINS[$list->tokens[$list->idx - 2]->value]))
+ || (in_array($curr->value, ['ON', 'USING'], true) && isset(JoinKeyword::$JOINS[$list->tokens[$list->idx - 2]->value]))
|| isset($list->tokens[$list->idx - 4], JoinKeyword::$JOINS[$list->tokens[$list->idx - 4]->value])
|| isset($list->tokens[$list->idx - 6], JoinKeyword::$JOINS[$list->tokens[$list->idx - 6]->value])
) {
@@ -494,7 +488,7 @@ class Formatter
// Finishing the line.
if ($lineEnded) {
$ret .= $this->options['line_ending']
- . str_repeat($this->options['indentation'], $indent);
+ . str_repeat($this->options['indentation'], (int) $indent);
$lineEnded = false;
} else {
@@ -507,7 +501,7 @@ class Formatter
// No space after . (
|| ($curr->type === Token::TYPE_OPERATOR && ($curr->value === '.' || $curr->value === ',' || $curr->value === '(' || $curr->value === ')'))
// No space before . , ( )
- || $curr->type === Token::TYPE_DELIMITER && mb_strlen($curr->value, 'UTF-8') < 2
+ || $curr->type === Token::TYPE_DELIMITER && mb_strlen((string) $curr->value, 'UTF-8') < 2
)
) {
$ret .= ' ';
@@ -529,7 +523,7 @@ class Formatter
public function escapeConsole($string)
{
return str_replace(
- array(
+ [
"\x00",
"\x01",
"\x02",
@@ -562,8 +556,8 @@ class Formatter
"\x1D",
"\x1E",
"\x1F",
- ),
- array(
+ ],
+ [
'\x00',
'\x01',
'\x02',
@@ -596,7 +590,7 @@ class Formatter
'\x1D',
'\x1E',
'\x1F',
- ),
+ ],
$string
);
}
@@ -663,7 +657,7 @@ class Formatter
*
* @return string the formatted string
*/
- public static function format($query, array $options = array())
+ public static function format($query, array $options = [])
{
$lexer = new Lexer($query);
$formatter = new self($options);
@@ -713,7 +707,7 @@ class Formatter
}
// Keeping track of this group's length.
- $length += mb_strlen($list->tokens[$idx]->value, 'UTF-8');
+ $length += mb_strlen((string) $list->tokens[$idx]->value, 'UTF-8');
}
return $length;
diff --git a/src/Utils/Misc.php b/src/Utils/Misc.php
index 7e6297f..6fcc831 100644
--- a/src/Utils/Misc.php
+++ b/src/Utils/Misc.php
@@ -1,8 +1,8 @@
<?php
-
/**
* Miscellaneous utilities.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Utils;
@@ -11,10 +11,6 @@ use PhpMyAdmin\SqlParser\Statements\SelectStatement;
/**
* Miscellaneous utilities.
- *
- * @category Misc
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class Misc
{
@@ -32,12 +28,12 @@ class Misc
|| empty($statement->expr)
|| empty($statement->from)
) {
- return array();
+ return [];
}
- $retval = array();
+ $retval = [];
- $tables = array();
+ $tables = [];
/**
* Expressions that may contain aliases.
@@ -59,26 +55,26 @@ class Misc
continue;
}
- $thisDb = (isset($expr->database) && ($expr->database !== '')) ?
+ $thisDb = isset($expr->database) && ($expr->database !== '') ?
$expr->database : $database;
if (! isset($retval[$thisDb])) {
- $retval[$thisDb] = array(
+ $retval[$thisDb] = [
'alias' => null,
- 'tables' => array()
- );
+ 'tables' => [],
+ ];
}
if (! isset($retval[$thisDb]['tables'][$expr->table])) {
- $retval[$thisDb]['tables'][$expr->table] = array(
- 'alias' => (isset($expr->alias) && ($expr->alias !== '')) ?
+ $retval[$thisDb]['tables'][$expr->table] = [
+ 'alias' => isset($expr->alias) && ($expr->alias !== '') ?
$expr->alias : null,
- 'columns' => array()
- );
+ 'columns' => [],
+ ];
}
if (! isset($tables[$thisDb])) {
- $tables[$thisDb] = array();
+ $tables[$thisDb] = [];
}
$tables[$thisDb][$expr->alias] = $expr->table;
}
@@ -89,7 +85,7 @@ class Misc
continue;
}
- $thisDb = (isset($expr->database) && ($expr->database !== '')) ?
+ $thisDb = isset($expr->database) && ($expr->database !== '') ?
$expr->database : $database;
if (isset($expr->table) && ($expr->table !== '')) {
diff --git a/src/Utils/Query.php b/src/Utils/Query.php
index 9494d96..e16d172 100644
--- a/src/Utils/Query.php
+++ b/src/Utils/Query.php
@@ -1,8 +1,8 @@
<?php
-
/**
* Statement utilities.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Utils;
@@ -35,10 +35,6 @@ use PhpMyAdmin\SqlParser\TokensList;
/**
* Statement utilities.
- *
- * @category Statement
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class Query
{
@@ -47,7 +43,7 @@ class Query
*
* @var array
*/
- public static $FUNCTIONS = array(
+ public static $FUNCTIONS = [
'SUM',
'AVG',
'STD',
@@ -55,10 +51,10 @@ class Query
'MIN',
'MAX',
'BIT_OR',
- 'BIT_AND'
- );
+ 'BIT_AND',
+ ];
- public static $ALLFLAGS = array(
+ public static $ALLFLAGS = [
/*
* select ... DISTINCT ...
*/
@@ -211,8 +207,8 @@ class Query
/*
* ... UNION ...
*/
- 'union' => false
- );
+ 'union' => false,
+ ];
/**
* Gets an array with flags select statement has.
@@ -300,7 +296,7 @@ class Query
*/
public static function getFlags($statement, $all = false)
{
- $flags = array('querytype' => false);
+ $flags = ['querytype' => false];
if ($all) {
$flags = self::$ALLFLAGS;
}
@@ -416,18 +412,18 @@ class Query
$ret['statement'] = $statement;
if ($statement instanceof SelectStatement) {
- $ret['select_tables'] = array();
- $ret['select_expr'] = array();
+ $ret['select_tables'] = [];
+ $ret['select_expr'] = [];
// Finding tables' aliases and their associated real names.
- $tableAliases = array();
+ $tableAliases = [];
foreach ($statement->from as $expr) {
if (isset($expr->table, $expr->alias) && ($expr->table !== '') && ($expr->alias !== '')
) {
- $tableAliases[$expr->alias] = array(
+ $tableAliases[$expr->alias] = [
$expr->table,
- isset($expr->database) ? $expr->database : null
- );
+ isset($expr->database) ? $expr->database : null,
+ ];
}
}
@@ -439,11 +435,11 @@ class Query
if (isset($tableAliases[$expr->table])) {
$arr = $tableAliases[$expr->table];
} else {
- $arr = array(
+ $arr = [
$expr->table,
- (isset($expr->database) && ($expr->database !== '')) ?
- $expr->database : null
- );
+ isset($expr->database) && ($expr->database !== '') ?
+ $expr->database : null,
+ ];
}
if (! in_array($arr, $ret['select_tables'])) {
$ret['select_tables'][] = $arr;
@@ -459,11 +455,11 @@ class Query
if (empty($ret['select_tables'])) {
foreach ($statement->from as $expr) {
if (isset($expr->table) && ($expr->table !== '')) {
- $arr = array(
+ $arr = [
$expr->table,
- (isset($expr->database) && ($expr->database !== '')) ?
- $expr->database : null
- );
+ isset($expr->database) && ($expr->database !== '') ?
+ $expr->database : null,
+ ];
if (! in_array($arr, $ret['select_tables'])) {
$ret['select_tables'][] = $arr;
}
@@ -484,12 +480,12 @@ class Query
*/
public static function getTables($statement)
{
- $expressions = array();
+ $expressions = [];
if (($statement instanceof InsertStatement)
|| ($statement instanceof ReplaceStatement)
) {
- $expressions = array($statement->into->dest);
+ $expressions = [$statement->into->dest];
} elseif ($statement instanceof UpdateStatement) {
$expressions = $statement->tables;
} elseif (($statement instanceof SelectStatement)
@@ -499,11 +495,11 @@ class Query
} elseif (($statement instanceof AlterStatement)
|| ($statement instanceof TruncateStatement)
) {
- $expressions = array($statement->table);
+ $expressions = [$statement->table];
} elseif ($statement instanceof DropStatement) {
if (! $statement->options->has('TABLE')) {
// No tables are dropped.
- return array();
+ return [];
}
$expressions = $statement->fields;
} elseif ($statement instanceof RenameStatement) {
@@ -512,7 +508,7 @@ class Query
}
}
- $ret = array();
+ $ret = [];
foreach ($expressions as $expr) {
if (! empty($expr->table)) {
$expr->expr = null; // Force rebuild.
@@ -698,7 +694,7 @@ class Query
* @param Statement $statement the parsed query that has to be modified
* @param TokensList $list the list of tokens
* @param array $ops Clauses to be replaced. Contains multiple
- * arrays having two values: array($old, $new).
+ * arrays having two values: [$old, $new].
* Clauses must be sorted.
*
* @return string
@@ -796,11 +792,11 @@ class Query
// No statement was found so we return the entire query as being the
// remaining part.
if (! $fullStatement) {
- return array(
+ return [
null,
$query,
- $delimiter
- );
+ $delimiter,
+ ];
}
// At least one query was found so we have to build the rest of the
@@ -810,11 +806,11 @@ class Query
$query .= $list->tokens[$list->idx]->token;
}
- return array(
+ return [
trim($statement),
$query,
- $delimiter
- );
+ $delimiter,
+ ];
}
/**
diff --git a/src/Utils/Routine.php b/src/Utils/Routine.php
index 9b075dc..7c024c5 100644
--- a/src/Utils/Routine.php
+++ b/src/Utils/Routine.php
@@ -1,8 +1,8 @@
<?php
-
/**
* Routine utilities.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Utils;
@@ -14,10 +14,6 @@ use PhpMyAdmin\SqlParser\Statements\CreateStatement;
/**
* Routine utilities.
- *
- * @category Routines
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class Routine
{
@@ -36,27 +32,27 @@ class Routine
$type = DataType::parse(new Parser(), $lexer->list);
if ($type === null) {
- return array(
+ return [
+ '',
'',
'',
'',
'',
- ''
- );
+ ];
}
- $options = array();
+ $options = [];
foreach ($type->options->options as $opt) {
$options[] = is_string($opt) ? $opt : $opt['value'];
}
- return array(
+ return [
'',
'',
$type->name,
implode(',', $type->parameters),
- implode(' ', $options)
- );
+ implode(' ', $options),
+ ];
}
/**
@@ -74,29 +70,29 @@ class Routine
$param = ParameterDefinition::parse(new Parser(), $lexer->list);
if (empty($param[0])) {
- return array(
+ return [
+ '',
'',
'',
'',
'',
- ''
- );
+ ];
}
$param = $param[0];
- $options = array();
+ $options = [];
foreach ($param->type->options->options as $opt) {
$options[] = is_string($opt) ? $opt : $opt['value'];
}
- return array(
+ return [
empty($param->inOut) ? '' : $param->inOut,
$param->name,
$param->type->name,
implode(',', $param->type->parameters),
- implode(' ', $options)
- );
+ implode(' ', $options),
+ ];
}
/**
@@ -108,15 +104,15 @@ class Routine
*/
public static function getParameters($statement)
{
- $retval = array(
+ $retval = [
'num' => 0,
- 'dir' => array(),
- 'name' => array(),
- 'type' => array(),
- 'length' => array(),
- 'length_arr' => array(),
- 'opts' => array()
- );
+ 'dir' => [],
+ 'name' => [],
+ 'type' => [],
+ 'length' => [],
+ 'length_arr' => [],
+ 'opts' => [],
+ ];
if (! empty($statement->parameters)) {
$idx = 0;
@@ -126,7 +122,7 @@ class Routine
$retval['type'][$idx] = $param->type->name;
$retval['length'][$idx] = implode(',', $param->type->parameters);
$retval['length_arr'][$idx] = $param->type->parameters;
- $retval['opts'][$idx] = array();
+ $retval['opts'][$idx] = [];
foreach ($param->type->options->options as $opt) {
$retval['opts'][$idx][] = is_string($opt) ?
$opt : $opt['value'];
diff --git a/src/Utils/Table.php b/src/Utils/Table.php
index e73e430..168061d 100644
--- a/src/Utils/Table.php
+++ b/src/Utils/Table.php
@@ -1,8 +1,8 @@
<?php
-
/**
* Table utilities.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Utils;
@@ -10,10 +10,6 @@ use PhpMyAdmin\SqlParser\Statements\CreateStatement;
/**
* Table utilities.
- *
- * @category Statement
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class Table
{
@@ -30,25 +26,25 @@ class Table
|| (! is_array($statement->fields))
|| (! $statement->options->has('TABLE'))
) {
- return array();
+ return [];
}
- $ret = array();
+ $ret = [];
foreach ($statement->fields as $field) {
if (empty($field->key) || ($field->key->type !== 'FOREIGN KEY')) {
continue;
}
- $columns = array();
+ $columns = [];
foreach ($field->key->columns as $column) {
$columns[] = $column['name'];
}
- $tmp = array(
+ $tmp = [
'constraint' => $field->name,
- 'index_list' => $columns
- );
+ 'index_list' => $columns,
+ ];
if (! empty($field->references)) {
$tmp['ref_db_name'] = $field->references->table->database;
@@ -87,10 +83,10 @@ class Table
|| (! is_array($statement->fields))
|| (! $statement->options->has('TABLE'))
) {
- return array();
+ return [];
}
- $ret = array();
+ $ret = [];
foreach ($statement->fields as $field) {
// Skipping keys.
@@ -98,10 +94,10 @@ class Table
continue;
}
- $ret[$field->name] = array(
+ $ret[$field->name] = [
'type' => $field->type->name,
- 'timestamp_not_null' => false
- );
+ 'timestamp_not_null' => false,
+ ];
if ($field->options) {
if ($field->type->name === 'TIMESTAMP') {
diff --git a/src/Utils/Tokens.php b/src/Utils/Tokens.php
index 9166085..e823114 100644
--- a/src/Utils/Tokens.php
+++ b/src/Utils/Tokens.php
@@ -1,8 +1,8 @@
<?php
-
/**
* Token utilities.
*/
+declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Utils;
@@ -12,10 +12,6 @@ use PhpMyAdmin\SqlParser\TokensList;
/**
* Token utilities.
- *
- * @category Token
- *
- * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
*/
class Tokens
{
@@ -44,7 +40,7 @@ class Tokens
}
if (isset($pattern['value_str'])
- && strcasecmp($pattern['value_str'], $token->value)
+ && strcasecmp($pattern['value_str'], (string) $token->value)
) {
return false;
}
@@ -85,7 +81,7 @@ class Tokens
*
* @var array
*/
- $newList = array();
+ $newList = [];
/**
* The length of the find pattern is calculated only once.