Skip to content

Volumes ​

Type
Class
Namespace
craft\services
Inherits
craft\services\Volumes » yii\base\Component » yii\base\BaseObject
Implements
yii\base\Configurable
Since
3.0.0

Volumes service.

An instance of the service is available via Craft::$app->volumes().

View source

Public Properties ​

PropertyDescription
allVolumeIdsinteger[]
allVolumeTypesstring[]
allVolumescraft\base\VolumeInterface[]
behaviorsyii\base\Behavior – List of behaviors attached to this component.
publicVolumeIdsinteger[]
publicVolumescraft\base\VolumeInterface[]
totalViewableVolumesinteger
totalVolumesinteger
viewableVolumeIdsarray
viewableVolumescraft\base\VolumeInterface[]

allVolumeIds ​

Type
integer[]
Default value
null
Access
Read-only

View source

allVolumeTypes ​

Type
string[]
Default value
null
Access
Read-only

View source

allVolumes ​

Type
craft\base\VolumeInterface[]
Default value
null
Access
Read-only

View source

publicVolumeIds ​

Type
integer[]
Default value
null
Access
Read-only

View source

publicVolumes ​

Type
craft\base\VolumeInterface[]
Default value
null
Access
Read-only

View source

totalViewableVolumes ​

Type
integer
Default value
null
Access
Read-only

View source

totalVolumes ​

Type
integer
Default value
null
Access
Read-only

View source

viewableVolumeIds ​

Type
array
Default value
null
Access
Read-only

View source

viewableVolumes ​

Type
craft\base\VolumeInterface[]
Default value
null
Access
Read-only

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.
__serialize()Serializer
__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.
createVolume()Creates an asset volume with a given config.
createVolumeConfig()Returns the config for the given volume.
deleteVolume()Deletes an asset volume.
deleteVolumeById()Deletes an asset volume by its ID.
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.
ensureTopFolder()Ensures a top level folder exists that matches the model.
getAllVolumeIds()Returns all of the volume IDs.
getAllVolumeTypes()Returns all registered volume types.
getAllVolumes()Returns all volumes.
getBehavior()Returns the named behavior object.
getBehaviors()Returns all behaviors attached to this component.
getPublicVolumeIds()Returns all volume IDs that have public URLs.
getPublicVolumes()Returns all volumes that have public URLs.
getTotalViewableVolumes()Returns the total number of volumes that are viewable by the current user.
getTotalVolumes()Returns the total number of volumes.
getViewableVolumeIds()Returns all volume IDs that are viewable by the current user.
getViewableVolumes()Returns all volumes that are viewable by the current user.
getVolumeByHandle()Returns a volume by its handle.
getVolumeById()Returns a volume by its ID.
getVolumeByUid()Returns a volume by its UID.
getVolumeOverrides()Returns any custom volume config values.
handleChangedVolume()Handle volume change
handleDeletedVolume()Handle volume getting deleted
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.
pruneDeletedField()
reorderVolumes()Reorders asset volumes.
saveVolume()Creates or updates a volume.
trigger()Triggers an event.

__serialize() ​

Since
3.5.14

Serializer

View source

createVolume() ​

Creates an asset volume with a given config.

View source

Arguments ​

  • $config (mixed) – The asset volume’s class name, or its config, with a type value and optionally a settings value

Returns ​

craft\base\VolumeInterface – The asset volume

createVolumeConfig() ​

Since
3.5.0

Returns the config for the given volume.

View source

Arguments ​

Returns ​

array

deleteVolume() ​

Deletes an asset volume.

View source

Arguments ​

Returns ​

boolean

Throws ​

deleteVolumeById() ​

Deletes an asset volume by its ID.

View source

Arguments ​

Returns ​

boolean

Throws ​

ensureTopFolder() ​

Ensures a top level folder exists that matches the model.

View source

Arguments ​

Returns ​

integer

getAllVolumeIds() ​

Returns all of the volume IDs.

View source

Returns ​

integer[]

getAllVolumeTypes() ​

Returns all registered volume types.

View source

Returns ​

string[]

getAllVolumes() ​

Returns all volumes.

View source

Returns ​

craft\base\VolumeInterface[]

getPublicVolumeIds() ​

Returns all volume IDs that have public URLs.

View source

Returns ​

integer[]

getPublicVolumes() ​

Returns all volumes that have public URLs.

View source

Returns ​

craft\base\VolumeInterface[]

getTotalViewableVolumes() ​

Returns the total number of volumes that are viewable by the current user.

View source

Returns ​

integer

getTotalVolumes() ​

Returns the total number of volumes.

View source

Returns ​

integer

getViewableVolumeIds() ​

Returns all volume IDs that are viewable by the current user.

View source

Returns ​

array

getViewableVolumes() ​

Returns all volumes that are viewable by the current user.

View source

Returns ​

craft\base\VolumeInterface[]

getVolumeByHandle() ​

Returns a volume by its handle.

View source

Arguments ​

Returns ​

craft\base\VolumeInterface, null

getVolumeById() ​

Returns a volume by its ID.

View source

Arguments ​

Returns ​

craft\base\VolumeInterface, null

getVolumeByUid() ​

Returns a volume by its UID.

View source

Arguments ​

Returns ​

craft\base\VolumeInterface, null

getVolumeOverrides() ​

DEPRECATED

Deprecated in 3.5.8. Environment variables or dependency injection should be used instead.

Returns any custom volume config values.

View source

Arguments ​

  • $handle (string) – The volume handle

Returns ​

array, null

handleChangedVolume() ​

Handle volume change

View source

Arguments ​

handleDeletedVolume() ​

Handle volume getting deleted

View source

Arguments ​

pruneDeletedField() ​

DEPRECATED

Deprecated in 3.7.51. Unused fields will be pruned automatically as field layouts are resaved.

View source

reorderVolumes() ​

Reorders asset volumes.

View source

Arguments ​

Returns ​

boolean

Throws ​

saveVolume() ​

Creates or updates a volume.

View source

Arguments ​

Returns ​

boolean – Whether the volume was saved successfully

Throws ​


Example ​

php
use craft\volumes\Local;

$volume = new Local([
    'name' => 'Content Images',
    'handle' => 'contentImages',
    'hasUrls' => true,
    'url' => '$CONTENT_IMAGES_URL',
    'path' => '$CONTENT_IMAGES_PATH',
]);

if (!Craft::$app->volumes->saveVolume(($volume))) {
    throw new Exception('Couldn’t save volume.');
}

Constants ​

ConstantDescription
CONFIG_VOLUME_KEY

Events ​

EVENT_AFTER_DELETE_VOLUME ​

Type
craft\events\VolumeEvent

The event that is triggered after a volume is deleted.


EVENT_AFTER_SAVE_VOLUME ​

Type
craft\events\VolumeEvent

The event that is triggered after a volume is saved.


EVENT_BEFORE_APPLY_VOLUME_DELETE ​

Type
craft\events\VolumeEvent
Since
3.1.0

The event that is triggered before a volume delete is applied to the database.


EVENT_BEFORE_DELETE_VOLUME ​

Type
craft\events\VolumeEvent

The event that is triggered before a volume is deleted.


EVENT_BEFORE_SAVE_VOLUME ​

Type
craft\events\VolumeEvent

The event that is triggered before a volume is saved.


EVENT_REGISTER_VOLUME_TYPES ​

Type
craft\events\RegisterComponentTypesEvent

The event that is triggered when registering volume types.

Volume types must implement craft\base\VolumeInterface. \craft\services\Volume provides a base implementation.

See Volume Types for documentation on creating volume types.


Example ​

php
use craft\events\RegisterComponentTypesEvent;
use craft\services\Volumes;
use yii\base\Event;

Event::on(Volumes::class,
    Volumes::EVENT_REGISTER_VOLUME_TYPES,
    function(RegisterComponentTypesEvent $event) {
        $event->types[] = MyVolumeType::class;
    }
);