trait DatasourcesTrait

This class implements common functions needed in G6KBundle controllers.

Properties

protected array $datatypes

Methods

getDatabase(int $dsid, SimpleXMLElement $datasources, string|null $databasesDir = null, bool $withDbName = true)

Constructs a Database object

array|string|bool|null
tablesList(Database $database)

Returns the list of tables of a database

array|string|bool|null
tableInfos(Database $database, string $table)

Returns informations about a table of a database

array
infosColumns(SimpleXMLElement $datasources, Database $database, string $table)

Returns informations about the columns of a table

array
infosColumnsToForm(string $table, array $infosColumns)

Constructs a form fields with informations about the columns of a table

array
getChoicesFromSource(SimpleXMLElement $source, array|null $result)

Retrieves the choice values of a data in the result list of a query on a data source

array|string|null
executeSource(SimpleXMLElement $source, SimpleXMLElement $datasources, string|null $databasesDir = null)

Executes the query from a source

array|null
filterResult(array|string $result, SimpleXMLElement $source)

Filters the result set of a query on the source return path

array
filterResultByLines(array $result, string $filter)

Filters the result set of a query on the source return path

string|bool
insertRowIntoTable(array $row, string $table, array $infosColumns, Database $database, TranslatorInterface $translator = null, bool $restore = false, bool $fromOtherTable = false)

Inserts a row into a table

bool|string
updateRowInTable(array $row, string $table, SimpleXMLElement $datasources, Database $database, TranslatorInterface $translator = null, bool $fromOtherTable = false)

Updates a table row

string|true
deleteRowFromTable(array $row, string $table, Database $database, TranslatorInterface $translator = null)

Deletes a row from a table

string|bool
checkColumnValue(array $info, string|null $value, TranslatorInterface $translator = null, bool $fromOtherTable = false)

Checks the value of a column

string|true
migrateDatabase(int $dsid, string $dbtype, SimpleXMLElement $datasources, SimpleXMLElement $fromDatasources, Database $fromDatabase, string|null $databasesDir = null, TranslatorInterface $translator = null, callable|null $fprogress = null)

Does the migration of data from a database to another.

string|true
createDatabase(int $dsid, string $dbtype, SimpleXMLElement $datasources, string|null $databasesDir = null, TranslatorInterface $translator = null)

Creates a database

string|true
createDatabaseTable(array $form, Database $database, TranslatorInterface $translator = null)

Creates a database table

string|true
dropDatabaseTable(string $table, Database $database, TranslatorInterface $translator = null)

Drops a table

string|true
editTableStructure(array $form, string $table, Database $database, SimpleXMLElement $datasources, TranslatorInterface $translator = null)

Edits a table structure

bool
alterSQLiteTable(string $table, string $alterdefs, Database $database, TranslatorInterface $translator = null)

Emulates a 'ALTER TABLE' for columns of a SQLite database.

Details

at line 192
protected Database getDatabase(int $dsid, SimpleXMLElement $datasources, string|null $databasesDir = null, bool $withDbName = true)

Constructs a Database object

Parameters

int $dsid The datasource ID
SimpleXMLElement $datasources DataSources.xml content
string|null $databasesDir The database directory ID
bool $withDbName (default: true) if false, the name of the database will not be inserted in the dsn string.

Return Value

Database The Database object

at line 211
protected array|string|bool|null tablesList(Database $database)

Returns the list of tables of a database

Parameters

Database $database The Database object

Return Value

array|string|bool|null The list of tables

at line 249
protected array|string|bool|null tableInfos(Database $database, string $table)

Returns informations about a table of a database

Parameters

Database $database The Database object
string $table The table name

Return Value

array|string|bool|null Informations about a table

at line 302
protected array infosColumns(SimpleXMLElement $datasources, Database $database, string $table)

Returns informations about the columns of a table

Parameters

SimpleXMLElement $datasources The DataSources.xml content
Database $database The Database object
string $table The table name

Return Value

array Informations about the columns

at line 361
protected array infosColumnsToForm(string $table, array $infosColumns)

Constructs a form fields with informations about the columns of a table

Parameters

string $table The table name
array $infosColumns Informations about the columns

Return Value

array

at line 398
protected array getChoicesFromSource(SimpleXMLElement $source, array|null $result)

Retrieves the choice values of a data in the result list of a query on a data source

Parameters

SimpleXMLElement $source The source definition extracted from DataSources.xml
array|null $result The result list of a query

Return Value

array The choices list

at line 461
protected array|string|null executeSource(SimpleXMLElement $source, SimpleXMLElement $datasources, string|null $databasesDir = null)

Executes the query from a source

Parameters

SimpleXMLElement $source The source definition extracted from DataSources.xml
SimpleXMLElement $datasources The DataSources.xml content
string|null $databasesDir The database directory

Return Value

array|string|null The result set of the query

at line 523
protected array|null filterResult(array|string $result, SimpleXMLElement $source)

Filters the result set of a query on the source return path

Parameters

array|string $result The result set of a query
SimpleXMLElement $source The source definition extracted from DataSources.xml

Return Value

array|null The filtered result set

at line 548
protected array filterResultByLines(array $result, string $filter)

Filters the result set of a query on the source return path

Parameters

array $result The result set of a query
string $filter The filter

Return Value

array The filtered result set

at line 589
protected string|bool insertRowIntoTable(array $row, string $table, array $infosColumns, Database $database, TranslatorInterface $translator = null, bool $restore = false, bool $fromOtherTable = false)

Inserts a row into a table

Parameters

array $row The row to insert
string $table The table name
array $infosColumns The informations about the columns
Database $database The Database object
TranslatorInterface $translator (default: null) true if the row is to be restored, false otherwise
bool $restore (default: false) true if the row is to be restored, false otherwise
bool $fromOtherTable (default: false) true if the row comes from another table

Return Value

string|bool

at line 638
protected bool|string updateRowInTable(array $row, string $table, SimpleXMLElement $datasources, Database $database, TranslatorInterface $translator = null, bool $fromOtherTable = false)

Updates a table row

Parameters

array $row The row
string $table The table name
SimpleXMLElement $datasources The DataSources.xml content
Database $database The Database object
TranslatorInterface $translator (default: null) true if the row is to be restored, false otherwise
bool $fromOtherTable (default: false) true if the row comes from another table

Return Value

bool|string

at line 685
protected string|true deleteRowFromTable(array $row, string $table, Database $database, TranslatorInterface $translator = null)

Deletes a row from a table

Parameters

array $row The row
string $table The table name
Database $database The Database object
TranslatorInterface $translator (default: null) true if the row is to be restored, false otherwise

Return Value

string|true

at line 709
protected string|bool checkColumnValue(array $info, string|null $value, TranslatorInterface $translator = null, bool $fromOtherTable = false)

Checks the value of a column

Parameters

array $info Informations about the column
string|null $value The value to check
TranslatorInterface $translator (default: null) true if the row is to be restored, false otherwise
bool $fromOtherTable (default: false) true if the row comes from another table

Return Value

string|bool An error message or true if no error.

at line 847
protected string|true migrateDatabase(int $dsid, string $dbtype, SimpleXMLElement $datasources, SimpleXMLElement $fromDatasources, Database $fromDatabase, string|null $databasesDir = null, TranslatorInterface $translator = null, callable|null $fprogress = null)

Does the migration of data from a database to another.

Parameters

int $dsid The datasource ID
string $dbtype The target database type
SimpleXMLElement $datasources The origin DataSources.xml content
SimpleXMLElement $fromDatasources The origin DataSources.xml content
Database $fromDatabase The origin Database object
string|null $databasesDir The database directory
TranslatorInterface $translator (default: null) true if the row is to be restored, false otherwise
callable|null $fprogress a function receiving the row number that's inserted

Return Value

string|true

at line 895
protected string|true createDatabase(int $dsid, string $dbtype, SimpleXMLElement $datasources, string|null $databasesDir = null, TranslatorInterface $translator = null)

Creates a database

Parameters

int $dsid The datasource ID
string $dbtype The target database type
SimpleXMLElement $datasources The DataSources.xml content
string|null $databasesDir The database directory
TranslatorInterface $translator (default: null) true if the row is to be restored, false otherwise

Return Value

string|true

at line 953
protected string|true createDatabaseTable(array $form, Database $database, TranslatorInterface $translator = null)

Creates a database table

Parameters

array $form The form fields
Database $database The Database object
TranslatorInterface $translator (default: null) true if the row is to be restored, false otherwise

Return Value

string|true

at line 1032
protected string|true dropDatabaseTable(string $table, Database $database, TranslatorInterface $translator = null)

Drops a table

Parameters

string $table The table name
Database $database The Database object
TranslatorInterface $translator (default: null) true if the row is to be restored, false otherwise

Return Value

string|true

at line 1057
protected string|true editTableStructure(array $form, string $table, Database $database, SimpleXMLElement $datasources, TranslatorInterface $translator = null)

Edits a table structure

Parameters

array $form The form fields
string $table The table name
Database $database The Database object
SimpleXMLElement $datasources The DataSources.xml content
TranslatorInterface $translator (default: null) true if the row is to be restored, false otherwise

Return Value

string|true

at line 1277
protected bool alterSQLiteTable(string $table, string $alterdefs, Database $database, TranslatorInterface $translator = null)

Emulates a 'ALTER TABLE' for columns of a SQLite database.

ALTER TABLE tbl_name alter_specification [, alter_specification] ...

alter_specification: ADD column_definition | DROP column_definition | CHANGE old_col_name column_definition

column_definition: same as for create table statements

Parameters

string $table The table name
string $alterdefs Comma separated alter specifications
Database $database The Database object
TranslatorInterface $translator (default: null) true if the row is to be restored, false otherwise

Return Value

bool Always true