Skip to content

Gc ​

Type
Class
Namespace
craft\services
Inherits
craft\services\Gc » yii\base\Component » yii\base\BaseObject
Implements
yii\base\Configurable
Since
3.1.0

Garbage Collection service.

An instance of the service is available via Craft::$app->gc.

View source

Public Properties ​

PropertyDescription
behaviorsyii\base\Behavior – List of behaviors attached to this component.
dbcraft\db\Connection, array, string – The database connection to use
deleteAllTrashedboolean – Whether hardDelete() should delete all soft-deleted rows, rather than just the ones that were deleted long enough ago to be ready for hard-deletion per the config5:softDeleteDuration config setting.
probabilityinteger – The probability (parts per million) that garbage collection (GC) should be performed on a request.
silentboolean – Whether CLI output should be muted.

db ​

Type
craft\db\Connection, array, string
Default value
'db'
Since
4.0.0

The database connection to use

View source

deleteAllTrashed ​

Type
boolean
Default value
false

Whether hardDelete() should delete all soft-deleted rows, rather than just the ones that were deleted long enough ago to be ready for hard-deletion per the config5:softDeleteDuration config setting.

View source

probability ​

Type
integer
Default value
10

The probability (parts per million) that garbage collection (GC) should be performed on a request. Defaults to 10, meaning 0.001% chance.

This number should be between 0 and 1000000. A value 0 means no GC will be performed at all unless forced.

View source

silent ​

Type
boolean
Default value
false
Since
5.4.9

Whether CLI output should be muted.

View source

Public Methods ​

MethodDescription
__call()Calls the named method which is not a class method.
__clone()This method is called after the object is created by cloning an existing one.
__construct()Constructor.
__get()Returns the value of a component property.
__isset()Checks if a property is set, i.e. defined and not null.
__set()Sets the value of a component property.
__unset()Sets a component property to be null.
attachBehavior()Attaches a behavior to this component.
attachBehaviors()Attaches a list of behaviors to the component.
behaviors()Returns a list of behaviors that this component should behave as.
canGetProperty()Returns a value indicating whether a property can be read.
canSetProperty()Returns a value indicating whether a property can be set.
className()Returns the fully qualified name of this class.
deleteOrphanedFieldLayouts()Deletes field layouts that are no longer used.
deleteOrphanedNestedElements()Deletes elements which have a fieldId value, but it’s set to an invalid field ID, or they're missing a row in the elements_owners table.
deletePartialElements()Deletes elements that are missing data in the given element extension table.
detachBehavior()Detaches a behavior from the component.
detachBehaviors()Detaches all behaviors from the component.
ensureBehaviors()Makes sure that the behaviors declared in behaviors() are attached to this component.
getBehavior()Returns the named behavior object.
getBehaviors()Returns all behaviors attached to this component.
hardDelete()Hard-deletes any rows in the given table(s), that are due for it.
hardDeleteElements()Hard-deletes eligible elements.
hardDeleteVolumes()Hard delete eligible volumes, deleting the folders one by one to avoid nested dependency errors.
hasEventHandlers()Returns a value indicating whether there is any handler attached to the named event.
hasMethod()Returns a value indicating whether a method is defined.
hasProperty()Returns a value indicating whether a property is defined for this component.
init()Initializes the object.
off()Detaches an existing event handler from this component.
on()Attaches an event handler to an event.
removeEmptyTempFolders()Find all temp upload folders with no assets in them and remove them.
run()Possibly runs garbage collection.
trigger()Triggers an event.

deleteOrphanedFieldLayouts() ​

Since
5.5.0

Deletes field layouts that are no longer used.

View source

Arguments ​

  • $elementType (class-string<\craft\base\ElementInterface>) – The element type
  • $table (string) – The table name that contains a foreign key to fieldlayouts.id
  • $fk (string) – The column name that contains the foreign key to fieldlayouts.id

deleteOrphanedNestedElements() ​

Since
5.4.2

Deletes elements which have a fieldId value, but it’s set to an invalid field ID, or they're missing a row in the elements_owners table.

View source

Arguments ​

  • $elementType (class-string<\craft\base\ElementInterface>) – The element type
  • $table (string) – The extension table name
  • $fieldFk (string) – The column name that contains the foreign key to fields.id

deletePartialElements() ​

Since
3.6.6

Deletes elements that are missing data in the given element extension table.

View source

Arguments ​

  • $elementType (class-string<\craft\base\ElementInterface>) – The element type
  • $table (string) – The extension table name
  • $fk (string) – The column name that contains the foreign key to elements.id

hardDelete() ​

Hard-deletes any rows in the given table(s), that are due for it.

View source

Arguments ​

  • $tables (string, string[]) – The table(s) to delete rows from. They must have a dateDeleted column.

hardDeleteElements() ​

Since
4.0.0

Hard-deletes eligible elements.

Any soft-deleted nested elements which have revisions will be skipped, as their revisions may still be needed by the owner element.

View source

hardDeleteVolumes() ​

Hard delete eligible volumes, deleting the folders one by one to avoid nested dependency errors.

View source

init() ​

Initializes the object.

This method is invoked at the end of the constructor after the object is initialized with the given configuration.

View source

removeEmptyTempFolders() ​

Since
4.0.0

Find all temp upload folders with no assets in them and remove them.

View source

Throws ​

run() ​

Possibly runs garbage collection.

View source

Arguments ​

  • $force (boolean) – Whether garbage collection should be forced. If left as false, then garbage collection will only run if a random condition passes, factoring in probability.

Events ​

EVENT_RUN ​

Type
craft\services\Event

The event that is triggered when running garbage collection.