2015-08-17 17:00:26 -07:00
< ? php
namespace Drupal\file\FileUsage ;
use Drupal\file\FileInterface ;
/**
* File usage backend interface .
*/
interface FileUsageInterface {
/**
* Records that a module is using a file .
*
* Examples :
* - A module that associates files with nodes , so $type would be
* 'node' and $id would be the node ' s nid . Files for all revisions are
* stored within a single nid .
* - The User module associates an image with a user , so $type would be 'user'
* and the $id would be the user ' s uid .
*
* @ param \Drupal\file\FileInterface $file
* A file entity .
* @ param string $module
* The name of the module using the file .
* @ param string $type
* The type of the object that contains the referenced file .
* @ param int $id
* The unique , numeric ID of the object containing the referenced file .
* @ param int $count
* ( optional ) The number of references to add to the object . Defaults to 1.
*/
public function add ( FileInterface $file , $module , $type , $id , $count = 1 );
/**
* Removes a record to indicate that a module is no longer using a file .
*
* @ param \Drupal\file\FileInterface $file
* A file entity .
* @ param string $module
* The name of the module using the file .
* @ param string $type
* ( optional ) The type of the object that contains the referenced file . May
* be omitted if all module references to a file are being deleted . Defaults
* to NULL .
* @ param int $id
* ( optional ) The unique , numeric ID of the object containing the referenced
* file . May be omitted if all module references to a file are being
* deleted . Defaults to NULL .
* @ param int $count
* ( optional ) The number of references to delete from the object . Defaults
* to 1. Zero may be specified to delete all references to the file within a
* specific object .
*/
public function delete ( FileInterface $file , $module , $type = NULL , $id = NULL , $count = 1 );
/**
* Determines where a file is used .
*
* @ param \Drupal\file\FileInterface $file
* A file entity .
*
* @ return array
* A nested array with usage data . The first level is keyed by module name ,
* the second by object type and the third by the object id . The value of
* the third level contains the usage count .
*/
public function listUsage ( FileInterface $file );
2016-06-02 15:56:09 -07:00
2015-08-17 17:00:26 -07:00
}