当前位置: 首页>>代码示例>>PHP>>正文


PHP SqlFormatter::init方法代码示例

本文整理汇总了PHP中SqlFormatter::init方法的典型用法代码示例。如果您正苦于以下问题:PHP SqlFormatter::init方法的具体用法?PHP SqlFormatter::init怎么用?PHP SqlFormatter::init使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在SqlFormatter的用法示例。


在下文中一共展示了SqlFormatter::init方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: init

 /**
  * Stuff that only needs to be done once.  Builds regular expressions and sorts the reserved words.
  */
 protected static function init()
 {
     if (self::$init) {
         return;
     }
     // Sort reserved word list from longest word to shortest
     usort(self::$reserved, array('SqlFormatter', 'sortLength'));
     // Set up regular expressions
     self::$regex_boundaries = '(' . implode('|', array_map(array('SqlFormatter', 'quote_regex'), self::$boundaries)) . ')';
     self::$regex_reserved = '(' . implode('|', array_map(array('SqlFormatter', 'quote_regex'), self::$reserved)) . ')';
     self::$regex_reserved_toplevel = str_replace(' ', '\\s+', '(' . implode('|', array_map(array('SqlFormatter', 'quote_regex'), self::$reserved_toplevel)) . ')');
     self::$regex_reserved_newline = str_replace(' ', '\\s+', '(' . implode('|', array_map(array('SqlFormatter', 'quote_regex'), self::$reserved_newline)) . ')');
     self::$regex_function = '(' . implode('|', array_map(array('SqlFormatter', 'quote_regex'), self::$functions)) . ')';
     self::$init = true;
 }
开发者ID:milkae,项目名称:Php,代码行数:18,代码来源:sql-formatter.php

示例2: init

 /**
  * Stuff that only needs to be done once.  Builds regular expressions and sorts the reserved words.
  */
 protected static function init()
 {
     if (self::$init) {
         return;
     }
     // Sort reserved word list from longest word to shortest, 3x faster than usort
     $reservedMap = array_combine(self::$reserved, array_map('strlen', self::$reserved));
     arsort($reservedMap);
     self::$reserved = array_keys($reservedMap);
     // Set up regular expressions
     self::$regex_boundaries = '(' . implode('|', array_map(array(__CLASS__, 'quote_regex'), self::$boundaries)) . ')';
     self::$regex_reserved = '(' . implode('|', array_map(array(__CLASS__, 'quote_regex'), self::$reserved)) . ')';
     self::$regex_reserved_toplevel = str_replace(' ', '\\s+', '(' . implode('|', array_map(array(__CLASS__, 'quote_regex'), self::$reserved_toplevel)) . ')');
     self::$regex_reserved_newline = str_replace(' ', '\\s+', '(' . implode('|', array_map(array(__CLASS__, 'quote_regex'), self::$reserved_newline)) . ')');
     self::$regex_function = '(' . implode('|', array_map(array(__CLASS__, 'quote_regex'), self::$functions)) . ')';
     self::$init = true;
 }
开发者ID:BusinessCookies,项目名称:CoffeeMachineProject,代码行数:20,代码来源:SqlFormatter.php

示例3: getNextToken

 /**
  * Return the next token and token type in a SQL string.
  * Quoted strings, comments, reserved words, whitespace, and punctuation are all their own tokens.
  *
  * @param String $string The SQL string
  * @param array $previous The result of the previous getNextToken() call
  *
  * @return Array An associative array containing a 'token' and 'type' key.
  */
 protected static function getNextToken($string, $previous = null)
 {
     // If the next token is a comment
     if ($string[0] === '#' || substr($string, 0, 2) === '--' || substr($string, 0, 2) === '/*') {
         // Comment until end of line
         if ($string[0] === '-' || $string[0] === '#') {
             $last = strpos($string, "\n");
             $type = 'comment';
         } else {
             // Comment until closing comment tag
             $last = strpos($string, "*/", 2) + 2;
             $type = 'block comment';
         }
         if ($last === false) {
             $last = strlen($string);
         }
         return array('token' => substr($string, 0, $last), 'type' => $type);
     }
     // If the next item is a string
     if (in_array($string[0], self::$quotes)) {
         $quote = $string[0];
         for ($i = 1, $length = strlen($string); $i < $length; $i++) {
             $next_char = null;
             if (isset($string[$i + 1])) {
                 $next_char = $string[$i + 1];
             }
             // Escaped (either backslash or backtick escaped)
             if ($quote !== '`' && $string[$i] === '\\' || $quote === '`' && $string[$i] === '`' && $next_char === '`') {
                 $i++;
             } elseif ($string[$i] === $quote) {
                 break;
             }
         }
         if ($quote === '`') {
             $type = 'backtick quote';
         } else {
             $type = 'quote';
         }
         return array('token' => substr($string, 0, $i + 1), 'type' => $type);
     }
     // Separators
     if (in_array($string[0], self::$boundaries)) {
         // If it is a simple string or empty between the parentheses, just count as a word
         // this makes it so we don't split things like NOW() or COUNT(*) into separate lines
         if ($string[0] === '(') {
             // "()"
             if (isset($string[1]) && $string[1] === ')') {
                 return array('token' => '()', 'type' => 'word');
             }
             // "(word/whitespace/boundary)"
             $next_token = self::getNextToken(substr($string, 1));
             $length = strlen($next_token['token']);
             if (isset($string[$length + 1]) && $string[$length + 1] === ')') {
                 if ($next_token['type'] === 'word' || $next_token['type'] === 'whitespace' || $next_token['type'] === 'boundary') {
                     return array('token' => '(' . $next_token['token'] . ')', 'type' => 'word');
                 }
             }
         }
         //return single parentheses as their own token
         if ($string[0] === '(' || $string[0] === ')') {
             return array('token' => $string[0], 'type' => $string[0]);
         }
         // If there are 1 or more boundary characters together, return as a single word
         $next_token = self::getNextToken(substr($string, 1));
         if ($next_token['type'] === 'boundary') {
             return array('token' => $string[0] . $next_token['token'], 'type' => 'boundary');
         }
         // Otherwise, just return the single boundary character
         if ($string[0] === '.' || $string[0] === ',') {
             $type = $string[0];
         } else {
             $type = 'boundary';
         }
         return array('token' => $string[0], 'type' => $type);
     }
     // Whitespace
     if (in_array($string[0], self::$whitespace)) {
         for ($i = 1, $length = strlen($string); $i < $length; $i++) {
             if (!in_array($string[$i], self::$whitespace)) {
                 break;
             }
         }
         return array('token' => substr($string, 0, $i), 'type' => 'whitespace');
     }
     if (!self::$init) {
         //Sort reserved word list from longest word to shortest
         usort(self::$reserved, array('SqlFormatter', 'sortLength'));
         //Combine boundary characters and whitespace
         self::$all_boundaries = array_merge(self::$boundaries, self::$whitespace);
         self::$init = true;
     }
//.........这里部分代码省略.........
开发者ID:TeamA-ict,项目名称:TeamA,代码行数:101,代码来源:SqlFormatter.php


注:本文中的SqlFormatter::init方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。