Grammar
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
Mix another object into the class.
Dynamically handle calls to the class.
Dynamically handle calls to the class.
Wrap a table in keyword identifiers.
Wrap a table that has an alias.
Convert an array of column names into a delimited string.
Get the appropriate query parameter place-holder for a value.
Escape a value for safe SQL embedding.
Split the given JSON selector into the field and the optional path and wrap them separately.
Wrap the given JSON path.
Wrap the given JSON path segment.
Compile a create database command.
Compile a drop database if exists command.
Compile the query to determine the schemas.
Compile the query to determine if the given table exists.
Compile the query to determine the tables.
Compile the query to determine the views.
Compile the query to determine the user-defined types.
Compile the query to determine the columns.
Compile the query to determine the indexes.
Compile the query to determine the foreign keys.
Compile the command to enable foreign key constraints.
Compile the command to disable foreign key constraints.
Compile a change column command into a series of SQL statements.
Add the column modifiers to the definition.
Get the command with a given name if it exists on the blueprint.
Determine if a command with a given name exists on the blueprint.
Add a prefix to an array of values.
Format a value so that it can be used in "default" clauses.
Get the fluent commands for the grammar.
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.
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.
in
Macroable at line 57
static bool
hasMacro(string $name)
Check if macro is registered.
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.
in
Macroable at line 78
static mixed
__callStatic(string $method, array $parameters)
Dynamically handle calls to the class.
in
Macroable at line 103
mixed
__call(string $method, array $parameters)
Dynamically handle calls to the class.
in
Grammar at line 24
__construct(Connection $connection)
Create a new grammar instance.
in
Grammar at line 35
array
wrapArray(array $values)
Wrap an array of values.
at line 404
string
wrapTable(Expression|string $table, string|null $prefix = null)
Wrap a table in keyword identifiers.
in
Grammar at line 76
string
wrapIdentifier(string $value)
Wrap a single identifier in keyword identifiers.
at line 415
string|int|float
wrap(Expression|string $value)
Wrap a value in keyword identifiers.
in
Grammar at line 110
protected string
wrapAliasedValue(string $value)
Wrap a value that has an alias.
in
Grammar at line 120
protected string
wrapAliasedTable(string $value, string|null $prefix = null)
Wrap a table that has an alias.
in
Grammar at line 134
protected string
wrapSegments(array $segments)
Wrap the given value segments.
in
Grammar at line 146
protected string
wrapValue(string $value)
Wrap a single string in keyword identifiers.
in
Grammar at line 160
protected string
wrapJsonSelector(string $value)
Wrap the given JSON selector.
in
Grammar at line 168
protected bool
isJsonSelector(string $value)
Determine if the given string is a JSON selector.
in
Grammar at line 178
string
columnize(array $columns)
Convert an array of column names into a delimited string.
in
Grammar at line 186
string
parameterize(array $values)
Create query parameter place-holders for an array.
in
Grammar at line 194
string|int|float
parameter(mixed $value)
Get the appropriate query parameter place-holder for a value.
in
Grammar at line 204
string
quoteString(string|array $value)
Quote the given string literal.
in
Grammar at line 216
string
escape(string|float|int|bool|null $value, bool $binary = false)
Escape a value for safe SQL embedding.
in
Grammar at line 224
bool
isExpression(mixed $value)
Determine if the given value is a raw expression.
in
Grammar at line 232
string|int|float
getValue(Expression|string|int|float $expression)
Transforms expressions to their scalar types.
in
Grammar at line 244
string
getDateFormat()
Get the format for database stored dates.
in
Grammar at line 255
static void
flushState()
Flush all static state.
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.
in
CompilesJsonPaths at line 29
protected string
wrapJsonPath(string $value, string $delimiter = '->')
Wrap the given JSON path.
in
CompilesJsonPaths at line 44
protected string
wrapJsonPathSegment(string $segment)
Wrap the given JSON path segment.
at line 44
string
compileCreateDatabase(string $name)
Compile a create database command.
at line 55
string
compileDropDatabaseIfExists(string $name)
Compile a drop database if exists command.
at line 68
string
compileSchemas()
Compile the query to determine the schemas.
at line 76
string|null
compileTableExists(string|null $schema, string $table)
Compile the query to determine if the given table exists.
at line 86
string
compileTables(string|array|null $schema)
Compile the query to determine the tables.
at line 96
string
compileViews(string|array|null $schema)
Compile the query to determine the views.
at line 106
string
compileTypes(string|array|null $schema)
Compile the query to determine the user-defined types.
at line 114
string
compileColumns(string|null $schema, string $table)
Compile the query to determine the columns.
at line 122
string
compileIndexes(string|null $schema, string $table)
Compile the query to determine the indexes.
at line 130
string
compileVectorIndex(Blueprint $blueprint, Fluent $command)
Compile a vector index key command.
at line 140
string
compileDropVectorIndex(Blueprint $blueprint, Fluent $command)
Compile a drop vector index command.
at line 148
string
compileForeignKeys(string|null $schema, string $table)
Compile the query to determine the foreign keys.
at line 156
string
compileEnableForeignKeyConstraints()
Compile the command to enable foreign key constraints.
at line 164
string
compileDisableForeignKeyConstraints()
Compile the command to disable foreign key constraints.
at line 174
array|string
compileRenameColumn(Blueprint $blueprint, Fluent $command)
Compile a rename column command.
at line 189
array|string
compileChange(Blueprint $blueprint, Fluent $command)
Compile a change column command into a series of SQL statements.
at line 197
string
compileFulltext(Blueprint $blueprint, Fluent $command)
Compile a fulltext index key command.
at line 205
string
compileDropFullText(Blueprint $blueprint, Fluent $command)
Compile a drop fulltext index command.
at line 213
string|null
compileForeign(Blueprint $blueprint, Fluent $command)
Compile a foreign key command.
at line 253
array|string|null
compileDropForeign(Blueprint $blueprint, Fluent $command)
Compile a drop foreign key command.
at line 263
protected array
getColumns(Blueprint $blueprint)
Compile the blueprint's added column definitions.
at line 279
protected string
getColumn(Blueprint $blueprint, Fluent $column)
Compile the column definition.
at line 292
protected string
getType(Fluent $column)
Get the SQL for the column data type.
at line 302
protected string
typeVector(Fluent $column)
Create the column definition for a vector type.
at line 310
protected string
typeTsvector(Fluent $column)
Create the column definition for a tsvector type.
at line 318
protected string
typeRaw(Fluent $column)
Create the column definition for a raw column type.
at line 326
protected string
addModifiers(string $sql, Blueprint $blueprint, Fluent $column)
Add the column modifiers to the definition.
at line 340
protected string
compileWhereNotNull(Fluent $command)
Compile the not-null predicate for a sparse index.
at line 351
protected Fluent|null
getCommandByName(Blueprint $blueprint, string $name)
Get the command with a given name if it exists on the blueprint.
at line 367
protected array
getCommandsByName(Blueprint $blueprint, string $name)
Get all of the commands with a given name.
at line 377
protected bool
hasCommand(Blueprint $blueprint, string $name)
Determine if a command with a given name exists on the blueprint.
at line 394
array
prefixArray(string $prefix, array $values)
Add a prefix to an array of values.
at line 425
protected string|int|float
getDefaultValue(mixed $value)
Format a value so that it can be used in "default" clauses.
at line 445
array
getFluentCommands()
Get the fluent commands for the grammar.
at line 453
bool
supportsSchemaTransactions()
Check if this Grammar supports schema changes wrapped in a transaction.