abstract class Grammar extends Grammar

Traits

Properties

static protected array $macros

The registered string macros.

from  Macroable
protected Connection $connection

The connection used for escaping values.

from  Grammar
protected string[] $modifiers

The possible column modifiers.

protected bool $transactions

If this Grammar supports schema changes wrapped in a transaction.

protected string[] $fluentCommands

The commands to be executed outside of create or alter command.

Methods

static void
macro(string $name, callable|object $macro)

Register a custom macro.

static void
mixin(object $mixin, bool $replace = true)

Mix another object into the class.

static bool
hasMacro(string $name)

Check if macro is registered.

static void
flushMacros()

Flush the existing macros.

static mixed
__callStatic(string $method, array $parameters)

Dynamically handle calls to the class.

mixed
__call(string $method, array $parameters)

Dynamically handle calls to the class.

__construct(Connection $connection)

Create a new grammar instance.

from  Grammar
array
wrapArray(array $values)

Wrap an array of values.

from  Grammar
string
wrapTable(Expression|string $table, string|null $prefix = null)

Wrap a table in keyword identifiers.

string|int|float
wrap(Expression|string $value)

Wrap a value in keyword identifiers.

string
wrapAliasedValue(string $value)

Wrap a value that has an alias.

from  Grammar
string
wrapAliasedTable(string $value, string|null $prefix = null)

Wrap a table that has an alias.

from  Grammar
string
wrapSegments(array $segments)

Wrap the given value segments.

from  Grammar
string
wrapValue(string $value)

Wrap a single string in keyword identifiers.

from  Grammar
string
wrapJsonSelector(string $value)

Wrap the given JSON selector.

from  Grammar
bool
isJsonSelector(string $value)

Determine if the given string is a JSON selector.

from  Grammar
string
columnize(array $columns)

Convert an array of column names into a delimited string.

from  Grammar
string
parameterize(array $values)

Create query parameter place-holders for an array.

from  Grammar
string|int|float
parameter(mixed $value)

Get the appropriate query parameter place-holder for a value.

from  Grammar
string
quoteString(string|array $value)

Quote the given string literal.

from  Grammar
string
escape(string|float|int|bool|null $value, bool $binary = false)

Escapes a value for safe SQL embedding.

from  Grammar
bool
isExpression(mixed $value)

Determine if the given value is a raw expression.

from  Grammar
string|int|float
getValue(Expression|string|int|float $expression)

Transforms expressions to their scalar types.

from  Grammar
string
getDateFormat()

Get the format for database stored dates.

from  Grammar
static void
flushState()

Flush all static state.

from  Grammar
array
wrapJsonFieldAndPath(string $column)

Split the given JSON selector into the field and the optional path and wrap them separately.

string
wrapJsonPath(string $value, string $delimiter = '->')

Wrap the given JSON path.

string
wrapJsonPathSegment(string $segment)

Wrap the given JSON path segment.

string
compileCreateDatabase(string $name)

Compile a create database command.

string
compileDropDatabaseIfExists(string $name)

Compile a drop database if exists command.

string
compileSchemas()

Compile the query to determine the schemas.

string|null
compileTableExists(string|null $schema, string $table)

Compile the query to determine if the given table exists.

string
compileTables(string|array|null $schema)

Compile the query to determine the tables.

string
compileViews(string|array|null $schema)

Compile the query to determine the views.

string
compileTypes(string|array|null $schema)

Compile the query to determine the user-defined types.

string
compileColumns(string|null $schema, string $table)

Compile the query to determine the columns.

string
compileIndexes(string|null $schema, string $table)

Compile the query to determine the indexes.

string
compileVectorIndex(Blueprint $blueprint, Fluent $command)

Compile a vector index key command.

string
compileForeignKeys(string|null $schema, string $table)

Compile the query to determine the foreign keys.

string
compileEnableForeignKeyConstraints()

Compile the command to enable foreign key constraints.

string
compileDisableForeignKeyConstraints()

Compile the command to disable foreign key constraints.

array|string
compileRenameColumn(Blueprint $blueprint, Fluent $command)

Compile a rename column command.

array|string
compileChange(Blueprint $blueprint, Fluent $command)

Compile a change column command into a series of SQL statements.

string
compileFulltext(Blueprint $blueprint, Fluent $command)

Compile a fulltext index key command.

string
compileDropFullText(Blueprint $blueprint, Fluent $command)

Compile a drop fulltext index command.

string|null
compileForeign(Blueprint $blueprint, Fluent $command)

Compile a foreign key command.

array|string|null
compileDropForeign(Blueprint $blueprint, Fluent $command)

Compile a drop foreign key command.

array
getColumns(Blueprint $blueprint)

Compile the blueprint's added column definitions.

string
getColumn(Blueprint $blueprint, Fluent $column)

Compile the column definition.

string
getType(Fluent $column)

Get the SQL for the column data type.

void
typeComputed(Fluent $column)

Create the column definition for a generated, computed column type.

string
typeVector(Fluent $column)

Create the column definition for a vector type.

string
typeTsvector(Fluent $column)

Create the column definition for a tsvector type.

string
typeRaw(Fluent $column)

Create the column definition for a raw column type.

string
addModifiers(string $sql, Blueprint $blueprint, Fluent $column)

Add the column modifiers to the definition.

Fluent|null
getCommandByName(Blueprint $blueprint, string $name)

Get the command with a given name if it exists on the blueprint.

array
getCommandsByName(Blueprint $blueprint, string $name)

Get all of the commands with a given name.

bool
hasCommand(Blueprint $blueprint, string $name)

Determine if a command with a given name exists on the blueprint.

array
prefixArray(string $prefix, array $values)

Add a prefix to an array of values.

string|int|float
getDefaultValue(mixed $value)

Format a value so that it can be used in "default" clauses.

array
getFluentCommands()

Get the fluent commands for the grammar.

bool
supportsSchemaTransactions()

Check if this Grammar supports schema changes wrapped in a transaction.

Details

in Macroable at line 28
static void macro(string $name, callable|object $macro)

Register a custom macro.

Boot-only. Macros persist in a static property for the worker lifetime and apply to every subsequent call on the macroable class.

Parameters

string $name
callable|object $macro

Return Value

void

in Macroable at line 41
static void mixin(object $mixin, bool $replace = true)

Mix another object into the class.

Boot-only. Delegates to macro() for each method; registered macros persist in a static property for the worker lifetime.

Parameters

object $mixin
bool $replace

Return Value

void

Exceptions

ReflectionException

in Macroable at line 57
static bool hasMacro(string $name)

Check if macro is registered.

Parameters

string $name

Return Value

bool

in Macroable at line 68
static void flushMacros()

Flush the existing macros.

Boot or tests only. Clears worker-wide macros; concurrent coroutines may resolve different methods depending on timing.

Return Value

void

in Macroable at line 78
static mixed __callStatic(string $method, array $parameters)

Dynamically handle calls to the class.

Parameters

string $method
array $parameters

Return Value

mixed

Exceptions

BadMethodCallException

in Macroable at line 103
mixed __call(string $method, array $parameters)

Dynamically handle calls to the class.

Parameters

string $method
array $parameters

Return Value

mixed

Exceptions

BadMethodCallException

in Grammar at line 24
__construct(Connection $connection)

Create a new grammar instance.

Parameters

Connection $connection

in Grammar at line 35
array wrapArray(array $values)

Wrap an array of values.

Parameters

array $values

Return Value

array

at line 384
string wrapTable(Expression|string $table, string|null $prefix = null)

Wrap a table in keyword identifiers.

Parameters

Expression|string $table
string|null $prefix

Return Value

string

at line 395
string|int|float wrap(Expression|string $value)

Wrap a value in keyword identifiers.

Parameters

Expression|string $value

Return Value

string|int|float

in Grammar at line 101
protected string wrapAliasedValue(string $value)

Wrap a value that has an alias.

Parameters

string $value

Return Value

string

in Grammar at line 111
protected string wrapAliasedTable(string $value, string|null $prefix = null)

Wrap a table that has an alias.

Parameters

string $value
string|null $prefix

Return Value

string

in Grammar at line 125
protected string wrapSegments(array $segments)

Wrap the given value segments.

Parameters

array $segments

Return Value

string

in Grammar at line 137
protected string wrapValue(string $value)

Wrap a single string in keyword identifiers.

Parameters

string $value

Return Value

string

in Grammar at line 151
protected string wrapJsonSelector(string $value)

Wrap the given JSON selector.

Parameters

string $value

Return Value

string

Exceptions

RuntimeException

in Grammar at line 159
protected bool isJsonSelector(string $value)

Determine if the given string is a JSON selector.

Parameters

string $value

Return Value

bool

in Grammar at line 169
string columnize(array $columns)

Convert an array of column names into a delimited string.

Parameters

array $columns

Return Value

string

in Grammar at line 177
string parameterize(array $values)

Create query parameter place-holders for an array.

Parameters

array $values

Return Value

string

in Grammar at line 185
string|int|float parameter(mixed $value)

Get the appropriate query parameter place-holder for a value.

Parameters

mixed $value

Return Value

string|int|float

in Grammar at line 195
string quoteString(string|array $value)

Quote the given string literal.

Parameters

string|array $value

Return Value

string

in Grammar at line 207
string escape(string|float|int|bool|null $value, bool $binary = false)

Escapes a value for safe SQL embedding.

Parameters

string|float|int|bool|null $value
bool $binary

Return Value

string

in Grammar at line 215
bool isExpression(mixed $value)

Determine if the given value is a raw expression.

Parameters

mixed $value

Return Value

bool

in Grammar at line 223
string|int|float getValue(Expression|string|int|float $expression)

Transforms expressions to their scalar types.

Parameters

Expression|string|int|float $expression

Return Value

string|int|float

in Grammar at line 235
string getDateFormat()

Get the format for database stored dates.

Return Value

string

in Grammar at line 246
static void flushState()

Flush all static state.

Return Value

void

in CompilesJsonPaths at line 15
protected array wrapJsonFieldAndPath(string $column)

Split the given JSON selector into the field and the optional path and wrap them separately.

Parameters

string $column

Return Value

array

in CompilesJsonPaths at line 29
protected string wrapJsonPath(string $value, string $delimiter = '->')

Wrap the given JSON path.

Parameters

string $value
string $delimiter

Return Value

string

in CompilesJsonPaths at line 43
protected string wrapJsonPathSegment(string $segment)

Wrap the given JSON path segment.

Parameters

string $segment

Return Value

string

at line 43
string compileCreateDatabase(string $name)

Compile a create database command.

Parameters

string $name

Return Value

string

at line 54
string compileDropDatabaseIfExists(string $name)

Compile a drop database if exists command.

Parameters

string $name

Return Value

string

at line 65
string compileSchemas()

Compile the query to determine the schemas.

Return Value

string

at line 73
string|null compileTableExists(string|null $schema, string $table)

Compile the query to determine if the given table exists.

Parameters

string|null $schema
string $table

Return Value

string|null

at line 83
string compileTables(string|array|null $schema)

Compile the query to determine the tables.

Parameters

string|array|null $schema

Return Value

string

at line 93
string compileViews(string|array|null $schema)

Compile the query to determine the views.

Parameters

string|array|null $schema

Return Value

string

at line 103
string compileTypes(string|array|null $schema)

Compile the query to determine the user-defined types.

Parameters

string|array|null $schema

Return Value

string

at line 111
string compileColumns(string|null $schema, string $table)

Compile the query to determine the columns.

Parameters

string|null $schema
string $table

Return Value

string

at line 119
string compileIndexes(string|null $schema, string $table)

Compile the query to determine the indexes.

Parameters

string|null $schema
string $table

Return Value

string

at line 127
string compileVectorIndex(Blueprint $blueprint, Fluent $command)

Compile a vector index key command.

Parameters

Blueprint $blueprint
Fluent $command

Return Value

string

at line 135
string compileForeignKeys(string|null $schema, string $table)

Compile the query to determine the foreign keys.

Parameters

string|null $schema
string $table

Return Value

string

at line 143
string compileEnableForeignKeyConstraints()

Compile the command to enable foreign key constraints.

Return Value

string

at line 151
string compileDisableForeignKeyConstraints()

Compile the command to disable foreign key constraints.

Return Value

string

at line 161
array|string compileRenameColumn(Blueprint $blueprint, Fluent $command)

Compile a rename column command.

Parameters

Blueprint $blueprint
Fluent $command

Return Value

array|string

at line 176
array|string compileChange(Blueprint $blueprint, Fluent $command)

Compile a change column command into a series of SQL statements.

Parameters

Blueprint $blueprint
Fluent $command

Return Value

array|string

at line 184
string compileFulltext(Blueprint $blueprint, Fluent $command)

Compile a fulltext index key command.

Parameters

Blueprint $blueprint
Fluent $command

Return Value

string

at line 192
string compileDropFullText(Blueprint $blueprint, Fluent $command)

Compile a drop fulltext index command.

Parameters

Blueprint $blueprint
Fluent $command

Return Value

string

at line 200
string|null compileForeign(Blueprint $blueprint, Fluent $command)

Compile a foreign key command.

Parameters

Blueprint $blueprint
Fluent $command

Return Value

string|null

at line 238
array|string|null compileDropForeign(Blueprint $blueprint, Fluent $command)

Compile a drop foreign key command.

Parameters

Blueprint $blueprint
Fluent $command

Return Value

array|string|null

at line 248
protected array getColumns(Blueprint $blueprint)

Compile the blueprint's added column definitions.

Parameters

Blueprint $blueprint

Return Value

array

at line 264
protected string getColumn(Blueprint $blueprint, Fluent $column)

Compile the column definition.

Parameters

Blueprint $blueprint
Fluent $column

Return Value

string

at line 277
protected string getType(Fluent $column)

Get the SQL for the column data type.

Parameters

Fluent $column

Return Value

string

at line 285
protected void typeComputed(Fluent $column)

Create the column definition for a generated, computed column type.

Parameters

Fluent $column

Return Value

void

at line 293
protected string typeVector(Fluent $column)

Create the column definition for a vector type.

Parameters

Fluent $column

Return Value

string

at line 301
protected string typeTsvector(Fluent $column)

Create the column definition for a tsvector type.

Parameters

Fluent $column

Return Value

string

at line 309
protected string typeRaw(Fluent $column)

Create the column definition for a raw column type.

Parameters

Fluent $column

Return Value

string

at line 317
protected string addModifiers(string $sql, Blueprint $blueprint, Fluent $column)

Add the column modifiers to the definition.

Parameters

string $sql
Blueprint $blueprint
Fluent $column

Return Value

string

at line 331
protected Fluent|null getCommandByName(Blueprint $blueprint, string $name)

Get the command with a given name if it exists on the blueprint.

Parameters

Blueprint $blueprint
string $name

Return Value

Fluent|null

at line 347
protected array getCommandsByName(Blueprint $blueprint, string $name)

Get all of the commands with a given name.

Parameters

Blueprint $blueprint
string $name

Return Value

array

at line 357
protected bool hasCommand(Blueprint $blueprint, string $name)

Determine if a command with a given name exists on the blueprint.

Parameters

Blueprint $blueprint
string $name

Return Value

bool

at line 374
array prefixArray(string $prefix, array $values)

Add a prefix to an array of values.

Parameters

string $prefix
array $values

Return Value

array

at line 405
protected string|int|float getDefaultValue(mixed $value)

Format a value so that it can be used in "default" clauses.

Parameters

mixed $value

Return Value

string|int|float

at line 425
array getFluentCommands()

Get the fluent commands for the grammar.

Return Value

array

at line 433
bool supportsSchemaTransactions()

Check if this Grammar supports schema changes wrapped in a transaction.

Return Value

bool