ProjectConfig
- Type
- Class
- Namespace
- craft\helpers
- Inherits
- craft\helpers\ProjectConfig
- Since
- 3.1.0
Class ProjectConfig
# Public Methods
Method | Description |
---|---|
cleanupConfig() | Traverse and clean a config array, removing empty values and sorting keys. |
diff() | Returns a diff of the pending project config YAML changes, compared to the currently loaded project config. |
ensureAllFieldsProcessed() | Ensures all field config changes are processed immediately in a safe manner. |
ensureAllGqlSchemasProcessed() | Ensure all GraphQL schema config changes are processed immediately in a safe manner. |
ensureAllSitesProcessed() | Ensure all site config changes are processed immediately in a safe manner. |
ensureAllUserGroupsProcessed() | Ensure all user group config changes are processed immediately in a safe manner. |
flattenConfigArray() | Flatten a config array to a dot.based.key array. |
packAssociativeArray() | Prepares an associative array for storage in project config, so that the order of its items will be remembered. |
packAssociativeArrays() | Loops through an array, and prepares any nested associative arrays for storage in project config, so that the order of its items will be remembered. |
reset() | Resets the static memoization variables. |
splitConfigIntoComponents() | Take a project config array and split it into components. |
touch() | Updates the dateModified value in config/project/project.yaml . |
unpackAssociativeArray() | Restores an array that was prepared via packAssociativeArray() to its original form. |
unpackAssociativeArrays() | Loops through an array, and restores any arrays that were prepared via packAssociativeArray() to their original form. |
# cleanupConfig()
- Since
- 3.1.14
Traverse and clean a config array, removing empty values and sorting keys.
Arguments
$config
(array) – Config array to clean
Returns
Throws
- yii\base\InvalidConfigException
if config contains unexpected data.
# diff()
- Since
- 3.5.6
Returns a diff of the pending project config YAML changes, compared to the currently loaded project config.
Arguments
$invert
(boolean) – Whether to reverse the diff, so the loaded config is treated as the source of truth
Returns
# ensureAllFieldsProcessed()
Ensures all field config changes are processed immediately in a safe manner.
# ensureAllGqlSchemasProcessed()
Ensure all GraphQL schema config changes are processed immediately in a safe manner.
# ensureAllSitesProcessed()
Ensure all site config changes are processed immediately in a safe manner.
Arguments
$force
(boolean) – Whether to proceed even if YAML changes are not currently being applied
# ensureAllUserGroupsProcessed()
Ensure all user group config changes are processed immediately in a safe manner.
# flattenConfigArray()
- Since
- 3.4.0
Flatten a config array to a dot.based.key array.
Arguments
$array
$path
$result
# packAssociativeArray()
- Since
- 3.4.0
Prepares an associative array for storage in project config, so that the order of its items will be remembered.
TIP
Use unpackAssociativeArray() to restore the array to its original form when fetching the value from the Project Config.
Arguments
Returns
Example
$myArray = [
'foo' => 1,
'bar' => 2,
];
// "Pack" the array so it doesn't get reordered to [bar=>2,foo=>1]
$packedArray = \craft\helpers\ProjectConfig::packAssociativeArray($myArray);
Craft::$app->projectConfig->set($configKey, $packedArray);
# packAssociativeArrays()
- Since
- 3.4.0
Loops through an array, and prepares any nested associative arrays for storage in project config, so that the order of its items will be remembered.
Arguments
Returns
# reset()
Resets the static memoization variables.
Returns
# splitConfigIntoComponents()
- Since
- 3.5.0
Take a project config array and split it into components.
Components are defined per each second-level config entry, where all the sibling entries are keyed by UIDs.
Arguments
$config
(array)
Returns
array – In the form of [$file => $config], where $file
is the relative config file path in Project Config folder
# touch()
- Since
- 3.5.14
Updates the dateModified
value in config/project/project.yaml
.
If a Git conflict is detected on the dateModified
value, a conflict resolution will also be attempted.
Arguments
$timestamp
(integer, null) – The updateddateModified
value. Ifnull
, the current time will be used.
# unpackAssociativeArray()
- Since
- 3.4.0
Restores an array that was prepared via packAssociativeArray() to its original form.
Arguments
Returns
# unpackAssociativeArrays()
- Since
- 3.4.0
Loops through an array, and restores any arrays that were prepared via packAssociativeArray() to their original form.
Arguments
$array
(array)