CakePHP
  • Documentation
    • Book
    • API
    • Videos
    • Reporting Security Issues
    • Privacy Policy
    • Logos & Trademarks
  • Business Solutions
  • Swag
  • Road Trip
  • Team
  • Community
    • Community
    • Get Involved
    • Issues (Github)
    • Bakery
    • Featured Resources
    • Training
    • Meetups
    • My CakePHP
    • CakeFest
    • Newsletter
    • Linkedin
    • YouTube
    • Facebook
    • Twitter
    • Mastodon
    • Help & Support
    • Forum
    • Stack Overflow
    • IRC
    • Slack
    • Paid Support
CakePHP

C CakePHP 5.2 Chiffon API

  • Project:
    • CakePHP
      • CakePHP
      • Authentication
      • Authorization
      • Chronos
      • Elastic Search
      • Queue
  • Version:
    • 5.2
      • 5.2
      • 5.1
      • 5.0
      • 4.6
      • 4.5
      • 4.4
      • 4.3
      • 4.2
      • 4.1
      • 4.0
      • 3.10
      • 3.9
      • 3.8
      • 3.7
      • 3.6
      • 3.5
      • 3.4
      • 3.3
      • 3.2
      • 3.1
      • 3.0
      • 2.10
      • 2.9
      • 2.8
      • 2.7
      • 2.6
      • 2.5
      • 2.4
      • 2.3
      • 2.2
      • 2.1
      • 2.0
      • 1.3
      • 1.2

Namespaces

  • Global
  • Cake
    • Cache
    • Collection
    • Command
    • Console
    • Controller
    • Core
    • Database
      • Driver
      • Exception
      • Expression
      • Log
      • Query
      • Retry
      • Schema
      • Statement
      • Type
    • Datasource
    • Error
    • Event
    • Form
    • Http
    • I18n
    • Log
    • Mailer
    • Network
    • ORM
    • Routing
    • TestSuite
    • Utility
    • Validation
    • View

Class SchemaDialect

Base class for schema implementations.

This class contains methods that are common across the various SQL dialects.

Provides methods for performing schema reflection. Results will be in the form of structured arrays. The structure of each result will be documented in this class. Subclasses are free to include additional data that is not documented.

Abstract
Namespace: Cake\Database\Schema

Property Summary

  • $_driver protected
    Cake\Database\Driver

    The driver instance being used.

Method Summary

  • __construct() public

    Constructor

  • _applyTypeSpecificColumnConversion() protected

    Tries to use a matching database type to convert a SQL column definition to an abstract type definition.

  • _convertConstraintColumns() protected

    Convert foreign key constraints references to a valid stringified list

  • _convertOnClause() protected

    Convert string on clauses to the abstract ones.

  • _foreignOnClause() protected

    Generate an ON clause for a foreign key.

  • _getTypeSpecificColumnSql() protected

    Tries to use a matching database type to generate the SQL fragment for a single column in a table.

  • addConstraintSql() abstract public

    Generate the SQL queries needed to add foreign key constraints to the table

  • columnDefinitionSql() public

    Create a SQL snippet for a column based on the array shape that describeColumns() creates.

  • columnSql() abstract public

    Generate the SQL fragment for a single column in a table.

  • constraintSql() abstract public

    Generate the SQL fragments for defining table constraints.

  • convertColumnDescription() abstract public deprecated

    Convert field description results into abstract schema fields.

  • convertForeignKeyDescription() abstract public deprecated

    Convert a foreign key description into constraints on the Table object.

  • convertIndexDescription() abstract public deprecated

    Convert an index description results into abstract schema indexes or constraints.

  • convertOptionsDescription() public deprecated

    Convert options data into table options.

  • createTableSql() abstract public

    Generate the SQL to create a table.

  • describe() public

    Get the column metadata for a table.

  • describeColumnSql() abstract public deprecated

    Generate the SQL to describe a table.

  • describeColumns() public

    Get a list of column metadata as a array

  • describeForeignKeySql() abstract public deprecated

    Generate the SQL to describe the foreign keys in a table.

  • describeForeignKeys() public

    Get a list of constraint metadata as a array

  • describeIndexSql() abstract public deprecated

    Generate the SQL to describe the indexes in a table.

  • describeIndexes() public

    Get a list of index metadata as a array

  • describeOptions() public

    Get platform specific options

  • describeOptionsSql() public deprecated

    Generate the SQL to describe table options

  • dropConstraintSql() abstract public

    Generate the SQL queries needed to drop foreign key constraints from the table

  • dropTableSql() public

    Generate the SQL to drop a table.

  • hasColumn() public

    Check if a table has a column with a given name.

  • hasForeignKey() public

    Check if a table has a foreign key with a given name.

  • hasIndex() public

    Check if a table has an index with a given name.

  • hasTable() public

    Check if a table exists

  • indexSql() abstract public

    Generate the SQL fragment for a single index in a table.

  • listTables() public

    Get the list of tables and views available in the current connection.

  • listTablesSql() abstract public deprecated

    Generate the SQL to list the tables.

  • listTablesWithoutViews() public

    Get the list of tables, excluding any views, available in the current connection.

  • listTablesWithoutViewsSql() public @method

    Generate the SQL to list the tables, excluding all views.

  • truncateTableSql() abstract public

    Generate the SQL to truncate a table.

Method Detail

__construct() ¶ public

__construct(Cake\Database\Driver $driver)

Constructor

This constructor will connect the driver so that methods like columnSql() and others will fail when the driver has not been connected.

Parameters
Cake\Database\Driver $driver

The driver to use.

_applyTypeSpecificColumnConversion() ¶ protected

_applyTypeSpecificColumnConversion(string $columnType, array $definition): array|null

Tries to use a matching database type to convert a SQL column definition to an abstract type definition.

Parameters
string $columnType

The column type.

array $definition

The column definition.

Returns
array|null

_convertConstraintColumns() ¶ protected

_convertConstraintColumns(array<string>|string $references): string

Convert foreign key constraints references to a valid stringified list

Parameters
array<string>|string $references

The referenced columns of a foreign key constraint statement

Returns
string

_convertOnClause() ¶ protected

_convertOnClause(string $clause): string

Convert string on clauses to the abstract ones.

Parameters
string $clause

The on clause to convert.

Returns
string

_foreignOnClause() ¶ protected

_foreignOnClause(string $on): string

Generate an ON clause for a foreign key.

Parameters
string $on

The on clause

Returns
string

_getTypeSpecificColumnSql() ¶ protected

_getTypeSpecificColumnSql(string $columnType, Cake\Database\Schema\TableSchemaInterface $schema, string $column): string|null

Tries to use a matching database type to generate the SQL fragment for a single column in a table.

Parameters
string $columnType

The column type.

Cake\Database\Schema\TableSchemaInterface $schema

The table schema instance the column is in.

string $column

The name of the column.

Returns
string|null

addConstraintSql() ¶ abstract public

addConstraintSql(Cake\Database\Schema\TableSchema $schema): array

Generate the SQL queries needed to add foreign key constraints to the table

Parameters
Cake\Database\Schema\TableSchema $schema

The table instance the foreign key constraints are.

Returns
array

columnDefinitionSql() ¶ public

columnDefinitionSql(array $column): string

Create a SQL snippet for a column based on the array shape that describeColumns() creates.

Parameters
array $column

The column metadata

Returns
string

columnSql() ¶ abstract public

columnSql(Cake\Database\Schema\TableSchema $schema, string $name): string

Generate the SQL fragment for a single column in a table.

Parameters
Cake\Database\Schema\TableSchema $schema

The table instance the column is in.

string $name

The name of the column.

Returns
string

constraintSql() ¶ abstract public

constraintSql(Cake\Database\Schema\TableSchema $schema, string $name): string

Generate the SQL fragments for defining table constraints.

Parameters
Cake\Database\Schema\TableSchema $schema

The table instance the column is in.

string $name

The name of the column.

Returns
string

convertColumnDescription() ¶ abstract public

convertColumnDescription(Cake\Database\Schema\TableSchema $schema, array $row): void

Convert field description results into abstract schema fields.

Parameters
Cake\Database\Schema\TableSchema $schema

The table object to append fields to.

array $row

The row data from describeColumnSql.

Returns
void

convertForeignKeyDescription() ¶ abstract public

convertForeignKeyDescription(Cake\Database\Schema\TableSchema $schema, array $row): void

Convert a foreign key description into constraints on the Table object.

Parameters
Cake\Database\Schema\TableSchema $schema

The table object to append a constraint to.

array $row

The row data from describeForeignKeySql.

Returns
void

convertIndexDescription() ¶ abstract public

convertIndexDescription(Cake\Database\Schema\TableSchema $schema, array $row): void

Convert an index description results into abstract schema indexes or constraints.

Parameters
Cake\Database\Schema\TableSchema $schema

The table object to append an index or constraint to.

array $row

The row data from describeIndexSql.

Returns
void

convertOptionsDescription() ¶ public

convertOptionsDescription(Cake\Database\Schema\TableSchema $schema, array $row): void

Convert options data into table options.

Parameters
Cake\Database\Schema\TableSchema $schema

Table instance.

array $row

The row of data.

Returns
void

createTableSql() ¶ abstract public

createTableSql(Cake\Database\Schema\TableSchema $schema, array<string> $columns, array<string> $constraints, array<string> $indexes): array<string>

Generate the SQL to create a table.

Parameters
Cake\Database\Schema\TableSchema $schema

Table instance.

array<string> $columns

The columns to go inside the table.

array<string> $constraints

The constraints for the table.

array<string> $indexes

The indexes for the table.

Returns
array<string>

describe() ¶ public

describe(string $name): Cake\Database\Schema\TableSchemaInterface

Get the column metadata for a table.

The name can include a database schema name in the form 'schema.table'.

Parameters
string $name

The name of the table to describe.

Returns
Cake\Database\Schema\TableSchemaInterface
Throws
Cake\Database\Exception\DatabaseException
when table cannot be described.

describeColumnSql() ¶ abstract public

describeColumnSql(string $tableName, array<string, mixed> $config): array

Generate the SQL to describe a table.

Parameters
string $tableName

The table name to get information on.

array<string, mixed> $config

The connection configuration.

Returns
array

describeColumns() ¶ public

describeColumns(string $tableName): array

Get a list of column metadata as a array

Each item in the array will contain the following:

  • name : the name of the column.
  • type : the abstract type of the column.
  • length : the length of the column.
  • default : the default value of the column or null.
  • null : boolean indicating whether the column can be null.
  • comment : the column comment or null.

Additionaly the autoIncrement key will be set for columns that are a primary key.

Parameters
string $tableName

The name of the table to describe columns on.

Returns
array

describeForeignKeySql() ¶ abstract public

describeForeignKeySql(string $tableName, array<string, mixed> $config): array

Generate the SQL to describe the foreign keys in a table.

Parameters
string $tableName

The table name to get information on.

array<string, mixed> $config

The connection configuration.

Returns
array

describeForeignKeys() ¶ public

describeForeignKeys(string $tableName): array

Get a list of constraint metadata as a array

Each item in the array will contain the following:

  • name : The name of the constraint
  • type : the type of the constraint. Generally foreign.
  • columns : the columns in the constraint on the.
  • references : A list of the table + all columns in the referenced table
  • update : The update action or null
  • delete : The delete action or null
Parameters
string $tableName

The name of the table to describe foreign keys on.

Returns
array

describeIndexSql() ¶ abstract public

describeIndexSql(string $tableName, array<string, mixed> $config): array

Generate the SQL to describe the indexes in a table.

Parameters
string $tableName

The table name to get information on.

array<string, mixed> $config

The connection configuration.

Returns
array

describeIndexes() ¶ public

describeIndexes(string $tableName): array

Get a list of index metadata as a array

Each item in the array will contain the following:

  • name : the name of the index.
  • type : the type of the index. One of unique, index, primary.
  • columns : the columns in the index.
  • length : the length of the index if applicable.
Parameters
string $tableName

The name of the table to describe indexes on.

Returns
array

describeOptions() ¶ public

describeOptions(string $tableName): array

Get platform specific options

No keys are guaranteed to be present as they are database driver dependent.

Parameters
string $tableName

The name of the table to describe options on.

Returns
array

describeOptionsSql() ¶ public

describeOptionsSql(string $tableName, array<string, mixed> $config): array

Generate the SQL to describe table options

Parameters
string $tableName

Table name.

array<string, mixed> $config

The connection configuration.

Returns
array

dropConstraintSql() ¶ abstract public

dropConstraintSql(Cake\Database\Schema\TableSchema $schema): array

Generate the SQL queries needed to drop foreign key constraints from the table

Parameters
Cake\Database\Schema\TableSchema $schema

The table instance the foreign key constraints are.

Returns
array

dropTableSql() ¶ public

dropTableSql(Cake\Database\Schema\TableSchema $schema): array

Generate the SQL to drop a table.

Parameters
Cake\Database\Schema\TableSchema $schema

Schema instance

Returns
array

hasColumn() ¶ public

hasColumn(string $tableName, string $columnName): bool

Check if a table has a column with a given name.

Parameters
string $tableName

The name of the table

string $columnName

The name of the column

Returns
bool

hasForeignKey() ¶ public

hasForeignKey(string $tableName, array<string> $columns = [], string $name = null): bool

Check if a table has a foreign key with a given name.

Parameters
string $tableName

The name of the table

array<string> $columns optional

The columns in the foriegn key. Specific ordering matters.

string $name optional

The name of the foreign key to match on. Can be used alone, or with $columns to match keys more precisely.

Returns
bool

hasIndex() ¶ public

hasIndex(string $tableName, array<string> $columns = [], string $name = null): bool

Check if a table has an index with a given name.

Parameters
string $tableName

The name of the table

array<string> $columns optional

The columns in the index. Specific ordering matters.

string $name optional

The name of the index to match on. Can be used alone, or with $columns to match indexes more precisely.

Returns
bool

hasTable() ¶ public

hasTable(string $tableName): bool

Check if a table exists

Parameters
string $tableName

The name of the table

Returns
bool

indexSql() ¶ abstract public

indexSql(Cake\Database\Schema\TableSchema $schema, string $name): string

Generate the SQL fragment for a single index in a table.

Parameters
Cake\Database\Schema\TableSchema $schema

The table object the column is in.

string $name

The name of the column.

Returns
string

listTables() ¶ public

listTables(): array<string>

Get the list of tables and views available in the current connection.

Returns
array<string>

listTablesSql() ¶ abstract public

listTablesSql(array<string, mixed> $config): array

Generate the SQL to list the tables.

Parameters
array<string, mixed> $config

The connection configuration to use for getting tables from.

Returns
array

listTablesWithoutViews() ¶ public

listTablesWithoutViews(): array<string>

Get the list of tables, excluding any views, available in the current connection.

Returns
array<string>

listTablesWithoutViewsSql() ¶ public @method

listTablesWithoutViewsSql(array $config): array<mixed>

Generate the SQL to list the tables, excluding all views.

Parameters
array $config
Returns
array<mixed>

truncateTableSql() ¶ abstract public

truncateTableSql(Cake\Database\Schema\TableSchema $schema): array

Generate the SQL to truncate a table.

Parameters
Cake\Database\Schema\TableSchema $schema

Table instance.

Returns
array

Property Detail

$_driver ¶ protected

The driver instance being used.

Type
Cake\Database\Driver
OpenHub
Pingping
Linode
  • Business Solutions
  • Showcase
  • Documentation
  • Book
  • API
  • Videos
  • Reporting Security Issues
  • Privacy Policy
  • Logos & Trademarks
  • Community
  • Get Involved
  • Issues (Github)
  • Bakery
  • Featured Resources
  • Training
  • Meetups
  • My CakePHP
  • CakeFest
  • Newsletter
  • Linkedin
  • YouTube
  • Facebook
  • Twitter
  • Mastodon
  • Help & Support
  • Forum
  • Stack Overflow
  • IRC
  • Slack
  • Paid Support

Generated using CakePHP API Docs