Вход Регистрация
Файл: framework/parsers/SQLFormatter.php
Строк: 56
<?php
/**
 * Format a SQL Query for better readable output in HTML or Plaintext.
 * Its a simple string parser, not a full tokenizer - so formatting
 * is not aware of the SQL syntax. This means we have to be conservative
 * with modifying the SQL string.
 *
 * @package framework
 * @subpackage parsers
 * @author Ingo Schommer, Silverstripe Ltd. (<firstname>@silverstripe.com)
 */
class SQLFormatter extends Object {

    protected static 
$newline_before_tokens = array(
        
'SELECT',
        
'UPDATE',
        
'INSERT',
        
'DELETE',
        
'FROM',
        
'INNER JOIN',
        
'FULL JOIN',
        
'LEFT JOIN',
        
'RIGHT JOIN',
        
'WHERE',
        
'ORDER BY',
        
'GROUP BY',
        
'LIMIT',
    );

    public function 
formatPlain($sql) {
        
$sql $this->addNewlines($sqlfalse);

        return 
$sql;
    }

    public function 
formatHTML($sql) {
        
$sql $this->addNewlines($sqltrue);

        return 
$sql;
    }

    
/**
     * Newlines for tokens defined in $newline_before_tokens.
     * Case-sensitive, only applies to uppercase SQL to avoid
     * messing with possible content fragments in the query.
     */
    
protected function addNewlines($sql$useHtmlFormatting false) {
        
$eol PHP_EOL;
        foreach(
self::$newline_before_tokens as $token) {
            
$breakToken = ($useHtmlFormatting) ? "<br />$eol$eol;
            
$sql preg_replace('/[^n](' $token ')/'$breakToken '$1'$sql);
        }

        return 
$sql;
    }

}
Онлайн: 1
Реклама