diff -u b/core/includes/file.inc b/core/includes/file.inc --- b/core/includes/file.inc +++ b/core/includes/file.inc @@ -921,7 +921,7 @@ * The file id. * * @see file_unmanaged_delete() - * @see file_usage()->list_usage() + * @see file_usage()->listUsage() */ function file_delete($fid) { return file_delete_multiple(array($fid)); @@ -938,7 +938,7 @@ * The file id. * * @see file_unmanaged_delete() - * @see file_usage()->list_usage() + * @see file_usage()->listUsage() */ function file_delete_multiple(array $fids) { entity_delete_multiple('file', $fids); diff -u b/core/lib/Drupal/Core/CoreBundle.php b/core/lib/Drupal/Core/CoreBundle.php --- b/core/lib/Drupal/Core/CoreBundle.php +++ b/core/lib/Drupal/Core/CoreBundle.php @@ -55,7 +55,8 @@ ->setFactoryMethod('getConnection') ->addArgument('slave'); $container->register('typed_data', 'Drupal\Core\TypedData\TypedDataManager'); - $container->register('file.usage', 'Drupal\Core\FileUsage\DatabaseFileUsageBackend'); + $container->register('file.usage', 'Drupal\Core\FileUsage\DatabaseFileUsageBackend') + ->addArgument(new Reference('database')); $container->register('router.dumper', '\Drupal\Core\Routing\MatcherDumper') ->addArgument(new Reference('database')); diff -u b/core/lib/Drupal/Core/FileUsage/DatabaseFileUsageBackend.php b/core/lib/Drupal/Core/FileUsage/DatabaseFileUsageBackend.php --- b/core/lib/Drupal/Core/FileUsage/DatabaseFileUsageBackend.php +++ b/core/lib/Drupal/Core/FileUsage/DatabaseFileUsageBackend.php @@ -9,6 +9,7 @@ use Drupal\Core\Database\DatabaseExceptionWrapper; use Drupal\file\File as File; +use Drupal\Core\Database\Connection; /** * Defines the database file usage backend. This is the default Drupal backend. @@ -16,10 +17,23 @@ class DatabaseFileUsageBackend extends FileUsageBase { /** + * Construct the DatabaseFileUsageBackend. + * + * @param Drupal\Core\Database\Connection $connection + * The database connection which will be used to store the route + * information. + * @param string $table + * (optional) The table to store the route info in. Defaults to 'router'. + */ + public function __construct(Connection $connection) { + $this->connection = $connection; + } + + /** * Implements Drupal\Core\FileUsage\FileUsageInterface::add(). */ - function add(File $file, $module, $type, $id, $count = 1) { - db_merge('file_usage') + public function add(File $file, $module, $type, $id, $count = 1) { + $this->connection->merge('file_usage') ->key(array( 'fid' => $file->fid, 'module' => $module, @@ -36,9 +50,9 @@ /** * Implements Drupal\Core\FileUsage\FileUsageInterface::delete(). */ - function delete(File $file, $module, $type = NULL, $id = NULL, $count = 1) { + public function delete(File $file, $module, $type = NULL, $id = NULL, $count = 1) { // Delete rows that have a exact or less value to prevent empty rows. - $query = db_delete('file_usage') + $query = $this->connection->delete('file_usage') ->condition('module', $module) ->condition('fid', $file->fid); if ($type && $id) { @@ -53,7 +67,7 @@ // If the row has more than the specified count decrement it by that number. if (!$result && $count > 0) { - $query = db_update('file_usage') + $query = $this->connection->update('file_usage') ->condition('module', $module) ->condition('fid', $file->fid); if ($type && $id) { @@ -69,10 +83,10 @@ } /** - * Implements Drupal\Core\FileUsage\FileUsageInterface::list_usage(). + * Implements Drupal\Core\FileUsage\FileUsageInterface::listUsage(). */ - function list_usage(File $file) { - $result = db_select('file_usage', 'f') + public function listUsage(File $file) { + $result = $this->connection->select('file_usage', 'f') ->fields('f', array('module', 'type', 'id', 'count')) ->condition('fid', $file->fid) ->condition('count', 0, '>') diff -u b/core/lib/Drupal/Core/FileUsage/FileUsageBase.php b/core/lib/Drupal/Core/FileUsage/FileUsageBase.php --- b/core/lib/Drupal/Core/FileUsage/FileUsageBase.php +++ b/core/lib/Drupal/Core/FileUsage/FileUsageBase.php @@ -17,7 +17,7 @@ /** * Implements Drupal\Core\FileUsage\FileUsageInterface::add(). */ - function add(File $file, $module, $type, $id, $count = 1) { + public function add(File $file, $module, $type, $id, $count = 1) { // Make sure that a used file is permament. if ($file->status != FILE_STATUS_PERMANENT) { $file->status = FILE_STATUS_PERMANENT; @@ -28,10 +28,10 @@ /** * Implements Drupal\Core\FileUsage\FileUsageInterface::delete(). */ - function delete(File $file, $module, $type = NULL, $id = NULL, $count = 1) { + public function delete(File $file, $module, $type = NULL, $id = NULL, $count = 1) { // If there are no more remaining usages of this file, mark it as temporary, // which result in a delete through system_cron(). - $usage = file_usage()->list_usage($file); + $usage = file_usage()->listUsage($file); if (empty($usage)) { $file->status = 0; $file->save(); diff -u b/core/lib/Drupal/Core/FileUsage/FileUsageInterface.php b/core/lib/Drupal/Core/FileUsage/FileUsageInterface.php --- b/core/lib/Drupal/Core/FileUsage/FileUsageInterface.php +++ b/core/lib/Drupal/Core/FileUsage/FileUsageInterface.php @@ -70,3 +70,3 @@ */ - public function list_usage(File $file); + public function listUsage(File $file); } diff -u b/core/modules/file/file.module b/core/modules/file/file.module --- b/core/modules/file/file.module +++ b/core/modules/file/file.module @@ -298,7 +298,7 @@ module_invoke_all('file_move', $file, $source); // Delete the original if it's not in use elsewhere. - if ($delete_source && !file_usage()->list_usage($source)) { + if ($delete_source && !file_usage()->listUsage($source)) { $source->delete(); } @@ -758,7 +758,7 @@ )); foreach ($result as $row) { if ($file = file_load($row->fid)) { - $references = file_usage()->list_usage($file); + $references = file_usage()->listUsage($file); if (empty($references)) { if (file_exists($file->uri)) { $file->delete(); @@ -1111,7 +1111,7 @@ if ($clicked_button != 'remove_button' && !empty($element['fid']['#value'])) { if ($file = file_load($element['fid']['#value'])) { if ($file->status == FILE_STATUS_PERMANENT) { - $references = file_usage()->list_usage($file); + $references = file_usage()->listUsage($file); if (empty($references)) { form_error($element, t('The file used in the !name field may not be referenced.', array('!name' => $element['#title']))); } diff -u b/core/modules/file/lib/Drupal/file/Tests/DeleteTest.php b/core/modules/file/lib/Drupal/file/Tests/DeleteTest.php --- b/core/modules/file/lib/Drupal/file/Tests/DeleteTest.php +++ b/core/modules/file/lib/Drupal/file/Tests/DeleteTest.php @@ -42,7 +42,7 @@ file_usage()->add($file, 'testing', 'test', 1); file_usage()->delete($file, 'testing', 'test', 1); - $usage = file_usage()->list_usage($file); + $usage = file_usage()->listUsage($file); $this->assertEqual($usage['testing']['test'], array(1 => 1), t('Test file is still in use.')); $this->assertTrue(file_exists($file->uri), t('File still exists on the disk.')); $this->assertTrue(file_load($file->fid), t('File still exists in the database.')); @@ -51,7 +51,7 @@ file_test_reset(); file_usage()->delete($file, 'testing', 'test', 1); - $usage = file_usage()->list_usage($file); + $usage = file_usage()->listUsage($file); $this->assertFileHooksCalled(array('load', 'update')); $this->assertTrue(empty($usage), t('File usage data was removed.')); $this->assertTrue(file_exists($file->uri), 'File still exists on the disk.'); diff -u b/core/modules/file/lib/Drupal/file/Tests/UsageTest.php b/core/modules/file/lib/Drupal/file/Tests/UsageTest.php --- b/core/modules/file/lib/Drupal/file/Tests/UsageTest.php +++ b/core/modules/file/lib/Drupal/file/Tests/UsageTest.php @@ -20,7 +20,7 @@ } /** - * Tests file_usage()->list_usage(). + * Tests file_usage()->listUsage(). */ function testGetUsage() { $file = $this->createFile(); @@ -43,7 +43,7 @@ )) ->execute(); - $usage = file_usage()->list_usage($file); + $usage = file_usage()->listUsage($file); $this->assertEqual(count($usage['testing']), 2, t('Returned the correct number of items.')); $this->assertTrue(isset($usage['testing']['foo'][1]), t('Returned the correct id.')); diff -u b/core/modules/system/tests/modules/bundle_test/lib/Drupal/bundle_test/TestFileUsage.php b/core/modules/system/tests/modules/bundle_test/lib/Drupal/bundle_test/TestFileUsage.php --- b/core/modules/system/tests/modules/bundle_test/lib/Drupal/bundle_test/TestFileUsage.php +++ b/core/modules/system/tests/modules/bundle_test/lib/Drupal/bundle_test/TestFileUsage.php @@ -15,17 +15,17 @@ * Implements Drupal\Core\FileUsage\FileUsageInterface::add(). */ - function add(File $file, $module, $type, $id, $count = 1) { + public function add(File $file, $module, $type, $id, $count = 1) { } /** * Implements Drupal\Core\FileUsage\FileUsageInterface::delete(). */ - function delete(File $file, $module, $type = NULL, $id = NULL, $count = 1) { + public function delete(File $file, $module, $type = NULL, $id = NULL, $count = 1) { } /** - * Implements Drupal\Core\FileUsage\FileUsageInterface::list_usage(). + * Implements Drupal\Core\FileUsage\FileUsageInterface::listUsage(). */ - function list_usage(File $file) { + public function listUsage(File $file) { } }