• Stars
    star
    1,646
  • Rank 28,392 (Top 0.6 %)
  • Language
    HTML
  • License
    MIT License
  • Created over 4 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A lightweight php class for formatting sql statements. Handles automatic indentation and syntax highlighting.

SqlFormatter

A lightweight php package for formatting sql statements.

It can automatically indent and add line breaks in addition to syntax highlighting.

History

This package is a fork from https://github.com/jdorn/sql-formatter Here is what the original History section says:

I found myself having to debug auto-generated SQL statements all the time and wanted some way to easily output formatted HTML without having to include a huge library or copy and paste into online formatters.

I was originally planning to extract the formatting code from PhpMyAdmin, but that was 10,000+ lines of code and used global variables.

I saw that other people had the same problem and used Stack Overflow user losif's answer as a starting point. http://stackoverflow.com/a/3924147

― @jdorn

Usage

The SqlFormatter class has a method format which takes an SQL string as input and returns a formatted block.

Sample usage:

<?php
require_once 'vendor/autoload.php';

use Doctrine\SqlFormatter\SqlFormatter;

$query = "SELECT count(*),`Column1`,`Testing`, `Testing Three` FROM `Table1`
    WHERE Column1 = 'testing' AND ( (`Column2` = `Column3` OR Column4 >= NOW()) )
    GROUP BY Column1 ORDER BY Column3 DESC LIMIT 5,10";

echo (new SqlFormatter())->format($query);

Output:

formatted output with HTML Highlight

When you run php under cli and instantiated SqlFormatter without argument, highlighted with CliHighlighter.

SqlFormatter constructor takes Highlighter implementations. HtmlHighlighter etc.

Formatting Only

If you don't want syntax highlighting and only want the indentations and line breaks, pass in a NullHighlighter instance as the second parameter.

This is useful for outputting to error logs or other non-html formats.

<?php

use Doctrine\SqlFormatter\NullHighlighter;
use Doctrine\SqlFormatter\SqlFormatter;

echo (new SqlFormatter(new NullHighlighter()))->format($query);

Output:

SELECT
  count(*),
  `Column1`,
  `Testing`,
  `Testing Three`
FROM
  `Table1`
WHERE
  Column1 = 'testing'
  AND (
    (
      `Column2` = `Column3`
      OR Column4 >= NOW()
    )
  )
GROUP BY
  Column1
ORDER BY
  Column3 DESC
LIMIT
  5, 10

Syntax Highlighting Only

There is a separate method highlight that preserves all original whitespace and just adds syntax highlighting.

This is useful for sql that is already well formatted and just needs to be a little easier to read.

<?php
echo (new SqlFormatter())->highlight($query);

Output:

HTML Highlight output

Compress Query

The compress method removes all comments and compresses whitespace.

This is useful for outputting queries that can be copy pasted to the command line easily.

-- This is a comment
    SELECT
    /* This is another comment
    On more than one line */
    Id #This is one final comment
    as temp, DateCreated as Created FROM MyTable;
echo (new SqlFormatter())->compress($query);

Output:

SELECT Id as temp, DateCreated as Created FROM MyTable;

More Repositories

1

inflector

Doctrine Inflector is a small library that can perform string manipulations with regard to uppercase/lowercase and singular/plural forms of words.
PHP
11,213
star
2

lexer

Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.
PHP
11,034
star
3

instantiator

PHP
10,924
star
4

orm

Doctrine Object Relational Mapper (ORM)
PHP
9,887
star
5

dbal

Doctrine Database Abstraction Layer
PHP
9,412
star
6

cache

Doctrine Cache component
PHP
7,810
star
7

annotations

Annotations Docblock Parser
PHP
6,731
star
8

event-manager

The Doctrine Event Manager is a library that provides a simple event system.
PHP
5,905
star
9

collections

Collections Abstraction Library
PHP
5,860
star
10

common

Doctrine Common
PHP
5,773
star
11

DoctrineBundle

Symfony Bundle for Doctrine ORM and DBAL
PHP
4,703
star
12

migrations

Doctrine Database Migrations Library
PHP
4,659
star
13

DoctrineMigrationsBundle

Symfony integration for the doctrine/migrations library
PHP
4,182
star
14

persistence

The Doctrine Persistence project is a library that provides common abstractions for object mapper persistence.
PHP
3,921
star
15

reflection

The Doctrine Reflection project is a simple library used by the various Doctrine projects which adds some additional functionality on top of the reflection API that comes with PHP. It allows you to get the reflection information about classes, methods and properties statically.
PHP
2,948
star
16

data-fixtures

Doctrine2 ORM Data Fixtures Extensions
PHP
2,769
star
17

DoctrineCacheBundle

Symfony2 Bundle for Doctrine Cache
PHP
2,750
star
18

DoctrineFixturesBundle

Symfony integration for the doctrine/data-fixtures library
PHP
2,446
star
19

deprecations

Thin library around different deprecation strategies
PHP
1,604
star
20

mongodb-odm

The Official PHP MongoDB ORM/ODM
PHP
1,085
star
21

mongodb

PHP MongoDB Abstraction Layer
PHP
442
star
22

DoctrineORMModule

Doctrine ORM Module for Laminas
PHP
436
star
23

DoctrineModule

Doctrine Module for Laminas
PHP
397
star
24

DoctrineMongoDBBundle

Integrates Doctrine MongoDB ODM with Symfony
PHP
377
star
25

coding-standard

The coding standard of the Doctrine project.
PHP
310
star
26

search

Generic Search extension for indexing and querying ODM/ORM objects with different text-search engine implementations
PHP
272
star
27

KeyValueStore

Abstraction for Key-Value to Plain Old PHP Object mapping
PHP
201
star
28

phpcr-odm

Doctrine PHPCR ODM
PHP
182
star
29

DoctrinePHPCRBundle

This bundle integrates Doctrine PHPCR ODM and PHPCR backends into Symfony
PHP
155
star
30

orientdb-odm

A set of PHP libraries in order to use OrientDB from PHP
PHP
155
star
31

couchdb-odm

A Document Mapper based on CouchDB
PHP
150
star
32

doctrine2-orm-tutorial

Code for the ORM Tutorial
PHP
143
star
33

rest

Doctrine REST Server and Client Library
PHP
141
star
34

doctrine1

[Abandoned - please upgrade to Doctrine 2] Doctrine 1 Object Relational Mapper
PHP
132
star
35

couchdb-client

CouchDB Client library
PHP
122
star
36

skeleton-mapper

Doctrine Skeleton Object Mapper
PHP
101
star
37

orm-documentation

OUTDATED REPOSITORY - PLEASE MAKE PULL REQUESTS TO DOCTRINE2 REPOSITORY
Python
97
star
38

oxm

PHP Object to XML Mapping (OXM)
PHP
86
star
39

DoctrineMongoODMModule

Laminas Module for Doctrine MongoDB ODM
PHP
83
star
40

rst-parser

PHP
58
star
41

DoctrineCouchDBBundle

Symfony Bundle for DoctrineCouchDB
PHP
49
star
42

jira-github-issues

Scripts to migrate Jira to Github issues
PHP
38
star
43

mongodb-odm-softdelete

Soft delete functionality for the Doctrine MongoDB ODM
PHP
35
star
44

doctrine-laminas-hydrator

Doctrine hydrators for Laminas applications
PHP
33
star
45

doctrine1-documentation

Documentation for Doctrine 1
Python
30
star
46

doctrine-website

Source code for the doctrine-project.org website and documentation.
PHP
29
star
47

automatic-releases

Internal automatic release tool for doctrine/* projects
PHP
28
star
48

shards

Prototype sharding Extension for Doctrine
PHP
27
star
49

doctrine-website-sphinx

Sphinx-based Doctrine Website
CSS
18
star
50

doctrine-mongodb-odm-tailable-cursor-bundle

Doctrine MongoDB ODM Tailable Cursor Bundle
PHP
16
star
51

symfony-doctrine-static-website-generator

PHP
14
star
52

mongodb-odm-softdelete-bundle

Symfony2 bundle that integrates the Doctrine MongoDB ODM SoftDelete library.
PHP
14
star
53

dbal-documentation

MOVED TO DOCTRINE/DBAL REPOSITORY
Python
13
star
54

common-documentation

Documentation for the common Doctrine PHP extensions library.
Python
13
star
55

doctrine-zend-hydrator

Doctrine hydrators for Zend Framework applications
PHP
12
star
56

migrations-documentation

Documentation for the Doctrine Migrations
Python
12
star
57

.github

11
star
58

dbal-bundle

PHP
7
star
59

static-website-generator

Doctrine Static Website Generator
PHP
5
star
60

doctrine-website-build-prod

Generated website artifacts. See https://www.doctrine-project.org/contribute/website/
HTML
5
star
61

doctrine-build-common

Common Phing Build Scripts and Tasks for all Doctrine Projects
PHP
4
star
62

orm-benchmarking-suite

Suite to do functional ORM performance tests across versions
PHP
4
star
63

phpcr-odm-documentation

PHP Content Repository ODM Documentation
Python
4
star
64

couchdb-documentation

Documentation for Doctrine CouchDB ODM
Python
4
star
65

doctrine-sphinx-theme

Sphinx Theme for all Doctrine Documentations
CSS
4
star
66

DoctrineStaticWebsiteGeneratorBundle

DoctrineStaticWebsiteGeneratorBundle
PHP
2
star
67

vagrant-doctrine-website

Shell
1
star
68

jira-redirector

HTML
1
star
69

contributors-guide

A complete guide for Doctrine project collaborators and contributors.
1
star