Joomla CMS
4.2.2
Documentation des API du CMS Joomla en version 4.2.2
|
Fonctions membres protégées | |
buildCheckQuery () | |
Fonctions membres protégées hérités de ChangeItem | |
buildCheckQuery () | |
Fonctions membres privées | |
fixInteger ($type1, $type2) | |
fixQuote ($string) | |
fixUtf8mb4TypeChecks ($type) | |
checkNull ($changesArray) | |
checkDefault ($changesArray, $type) | |
Membres hérités additionnels | |
Fonctions membres publiques hérités de ChangeItem | |
__construct ($db, $file, $query) | |
check () | |
fix () | |
Fonctions membres publiques statiques hérités de ChangeItem | |
static | getInstance ($db, $file, $query) |
Champs de données hérités de ChangeItem | |
$file = null | |
$updateQuery = null | |
$checkQuery = null | |
$checkQueryExpected = 1 | |
$db = null | |
$queryType = null | |
$msgElements = array() | |
$checkStatus = 0 | |
$rerunStatus = 0 | |
Checks the database schema against one MySQL DDL query to see if it has been run.
|
protected |
Checks a DDL query to see if it is a known type If yes, build a check query to see if the DDL has been run on the database. If successful, the $msgElements, $queryType, $checkStatus and $checkQuery fields are populated. The $msgElements contains the text to create the user message. The $checkQuery contains the SQL query to check whether the schema change has been run against the current database. The $queryType contains the type of DDL query that was run (for example, CREATE_TABLE, ADD_COLUMN, CHANGE_COLUMN_TYPE, ADD_INDEX). The $checkStatus field is set to zero if the query is created
If not successful, $checkQuery is empty and , and $checkStatus is -1. For example, this will happen if the current line is a non-DDL statement.
When we made the UTF8MB4 conversion then text becomes medium text - so loosen the checks to these two types otherwise (for example) the profile fields profile_value check fails - see https://github.com/joomla/joomla-cms/issues/9258
When we made the UTF8MB4 conversion then text becomes medium text - so loosen the checks to these two types otherwise (for example) the profile fields profile_value check fails - see https://github.com/joomla/joomla-cms/issues/9258
Références $result, $type, ChangeItem\$updateQuery, elseif, et null.
|
private |
Create query clause for column changes/modifications for DEFAULT attribute
array | $changesArray | The array of words after COLUMN name |
string | $type | The type of the COLUMN |
Références $type.
|
private |
Create query clause for column changes/modifications for NULL attribute
array | $changesArray | The array of words after COLUMN name |
|
private |
Fix up integer. Fixes problem with MySQL integer descriptions. On MySQL 8 display length is not shown anymore. This means we have to match e.g. both "int(10) unsigned" and "int unsigned", or both "int(11)" and "int" and so on. The same applies to the other integer data types "tinyint", "smallint", "mediumint" and "bigint".
string | $type1 | the column type |
string | $type2 | the column attributes |
Références $result.
|
private |
Fixes up a string for inclusion in a query. Replaces name quote character with normal quote for literal. Drops trailing semicolon. Injects the database prefix.
string | $string | The input string to be cleaned up. |
|
private |
Make check query for column changes/modifications tolerant for automatic type changes of text columns, e.g. from TEXT to MEDIUMTEXT, after conversion from utf8 to utf8mb4, and fix integer columns without display length for MySQL 8 (see also function "fixInteger" above).
string | $type | The column type found in the update query |
Références $type.