Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 22 additions & 26 deletions src/Context.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@

namespace PhpMyAdmin\SqlParser;

use PhpMyAdmin\SqlParser\Exceptions\LoaderException;

use function class_exists;
use function explode;
use function intval;
Expand Down Expand Up @@ -374,7 +372,7 @@ public static function isKeyword($str, $isReserved = false)
$str = strtoupper($str);

if (isset(static::$KEYWORDS[$str])) {
if ($isReserved && ! (static::$KEYWORDS[$str] & Token::FLAG_KEYWORD_RESERVED)) {
if ($isReserved && !(static::$KEYWORDS[$str] & Token::FLAG_KEYWORD_RESERVED)) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
if ($isReserved && !(static::$KEYWORDS[$str] & Token::FLAG_KEYWORD_RESERVED)) {
if ($isReserved && ! (static::$KEYWORDS[$str] & Token::FLAG_KEYWORD_RESERVED)) {

return null;
}

Expand All @@ -396,7 +394,7 @@ public static function isKeyword($str, $isReserved = false)
*/
public static function isOperator($str)
{
if (! isset(static::$OPERATORS[$str])) {
if (!isset(static::$OPERATORS[$str])) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
if (!isset(static::$OPERATORS[$str])) {
if (! isset(static::$OPERATORS[$str])) {

return null;
}

Expand Down Expand Up @@ -588,11 +586,9 @@ public static function isSeparator($str)
*
* @param string $context name of the context or full class name that defines the context
*
* @return void
*
* @throws LoaderException if the specified context doesn't exist.
* @return bool true if the context was loaded, false otherwise
*/
public static function load($context = '')
public static function load($context = ''): bool
{
if (empty($context)) {
$context = self::$defaultContext;
Expand All @@ -604,11 +600,13 @@ public static function load($context = '')
}

if (! class_exists($context)) {
throw @new LoaderException('Specified context ("' . $context . '") does not exist.', $context);
return false;
}

self::$loadedContext = $context;
self::$KEYWORDS = $context::$KEYWORDS;

return true;
}

/**
Expand All @@ -628,24 +626,22 @@ public static function loadClosest($context = '')
{
$length = strlen($context);
for ($i = $length; $i > 0;) {
try {
/* Trying to load the new context */
static::load($context);

/* Trying to load the new context */
if (static::load($context)) {
return $context;
} catch (LoaderException $e) {
/* Replace last two non zero digits by zeroes */
do {
$i -= 2;
$part = substr($context, $i, 2);
/* No more numeric parts to strip */
if (! is_numeric($part)) {
break 2;
}
} while (intval($part) === 0 && $i > 0);

$context = substr($context, 0, $i) . '00' . substr($context, $i + 2);
}

/* Replace last two non zero digits by zeroes */
do {
$i -= 2;
$part = substr($context, $i, 2);
/* No more numeric parts to strip */
if (! is_numeric($part)) {
break 2;
}
} while (intval($part) === 0 && $i > 0);

$context = substr($context, 0, $i) . '00' . substr($context, $i + 2);
}

/* Fallback to loading at least matching engine */
Expand Down Expand Up @@ -815,7 +811,7 @@ public static function escape($str, $quote = '`')
return $str;
}

if ((static::$MODE & self::SQL_MODE_NO_ENCLOSING_QUOTES) && (! static::isKeyword($str, true))) {
if ((static::$MODE & self::SQL_MODE_NO_ENCLOSING_QUOTES) && (!static::isKeyword($str, true))) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
if ((static::$MODE & self::SQL_MODE_NO_ENCLOSING_QUOTES) && (!static::isKeyword($str, true))) {
if ((static::$MODE & self::SQL_MODE_NO_ENCLOSING_QUOTES) && (! static::isKeyword($str, true))) {

return $str;
}

Expand Down