ProjectConfig

Type
Class
Namespace
craft\helpers
Inherits
craft\helpers\ProjectConfig
Since
3.1.0

Class ProjectConfig

View source (opens new window)

# 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.
lastPathSegment() Returns the last segment in a given project config path.
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.
pathSegments() Returns an array of the individual segments in a given project config path.
pathWithoutLastSegment() Returns the given project config path with all but its last segment, or null if the path only had one segment.
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.

View source (opens new window)

Arguments

Returns

array (opens new window)

Throws

# diff()

Since
3.5.6

Returns a diff of the pending project config YAML changes, compared to the currently loaded project config.

View source (opens new window)

Arguments

Returns

string (opens new window)

# ensureAllFieldsProcessed()

Ensures all field config changes are processed immediately in a safe manner.

View source (opens new window)

# ensureAllGqlSchemasProcessed()

Ensure all GraphQL schema config changes are processed immediately in a safe manner.

View source (opens new window)

# ensureAllSitesProcessed()

Ensure all site config changes are processed immediately in a safe manner.

View source (opens new window)

Arguments

# ensureAllUserGroupsProcessed()

Ensure all user group config changes are processed immediately in a safe manner.

View source (opens new window)

# flattenConfigArray()

Since
3.4.0

Flatten a config array to a dot.based.key array.

View source (opens new window)

Arguments

  • $array
  • $path
  • $result

# lastPathSegment()

Since
3.7.44

Returns the last segment in a given project config path.

View source (opens new window)

Arguments

Returns

string (opens new window), null (opens new window)

Throws

# 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.

View source (opens new window)

Arguments

Returns

array (opens new window)

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.

View source (opens new window)

Arguments

Returns

array (opens new window)

# pathSegments()

Since
3.7.44

Returns an array of the individual segments in a given project config path.

View source (opens new window)

Arguments

Returns

string (opens new window)[]

Throws

# pathWithoutLastSegment()

Since
3.7.44

Returns the given project config path with all but its last segment, or null if the path only had one segment.

View source (opens new window)

Arguments

Returns

string (opens new window), null (opens new window)

Throws

# reset()

Resets the static memoization variables.

View source (opens new window)

Returns

null (opens new window)

# 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.

View source (opens new window)

Arguments

Returns

array (opens new window) – 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.

View source (opens new window)

Arguments

# unpackAssociativeArray()

Since
3.4.0

Restores an array that was prepared via packAssociativeArray() to its original form.

View source (opens new window)

Arguments

Returns

array (opens new window)

# unpackAssociativeArrays()

Since
3.4.0

Loops through an array, and restores any arrays that were prepared via packAssociativeArray() to their original form.

View source (opens new window)

Arguments

Returns

array (opens new window)