diff --git a/image_replace.module b/image_replace.module
index ff7fbde..8eeed5e 100644
--- a/image_replace.module
+++ b/image_replace.module
@@ -25,7 +25,9 @@ use Drupal\image\ImageStyleInterface;
  *   exists.
  */
 function image_replace_get($target_style, $target_uri) {
-  return db_select('image_replace')
+  // TODO: Drupal Rector Notice: Please delete the following comment after you've made any necessary changes.
+  // You will need to use `\Drupal\core\Database\Database::getConnection()` if you do not yet have access to the container here.
+  return \Drupal::database()->select('image_replace')
     ->fields('image_replace', array('replacement_uri'))
     ->condition('target_style', $target_style)
     ->condition('target_uri', $target_uri)
@@ -44,7 +46,9 @@ function image_replace_get($target_style, $target_uri) {
  *   The replacement uri to set for the given uri/style combination.
  */
 function image_replace_add($target_style, $target_uri, $replacement_uri) {
-  return db_insert('image_replace')
+  // TODO: Drupal Rector Notice: Please delete the following comment after you've made any necessary changes.
+  // You will need to use `\Drupal\core\Database\Database::getConnection()` if you do not yet have access to the container here.
+  return \Drupal::database()->insert('image_replace')
     ->fields(array(
       'target_style' => $target_style,
       'target_uri' => $target_uri,
@@ -62,7 +66,9 @@ function image_replace_add($target_style, $target_uri, $replacement_uri) {
  *   The uri of the image for which to remove the replacement.
  */
 function image_replace_remove($target_style, $target_uri) {
-  return db_delete('image_replace')
+  // TODO: Drupal Rector Notice: Please delete the following comment after you've made any necessary changes.
+  // You will need to use `\Drupal\core\Database\Database::getConnection()` if you do not yet have access to the container here.
+  return \Drupal::database()->delete('image_replace')
     ->condition('target_style', $target_style)
     ->condition('target_uri', $target_uri)
     ->execute();
@@ -133,8 +139,8 @@ function image_replace_form_field_config_edit_form_element_validate($element, &$
     }
 
     if ($changed) {
-      drupal_set_message(t('The image replacement settings have been modified. As a result, it is necessary to rebuild the image replacement mapping for existing content. Note: The replacement mapping is updated automatically when saving an entity. Content can be resaved in bulk using the <em>save content</em> of the <a href="@content_url">administrative interface</a>', array('@content_url' => '/admin/content')), 'warning');
-      drupal_set_message(t('Also note that images already might be cached in the browser or by any intermediate HTTP cache. On live sites the only way to force browsers to redownload a cached image is to reupload the image with a different name.'), 'warning');
+      \Drupal::messenger()->addWarning(t('The image replacement settings have been modified. As a result, it is necessary to rebuild the image replacement mapping for existing content. Note: The replacement mapping is updated automatically when saving an entity. Content can be resaved in bulk using the <em>save content</em> of the <a href="@content_url">administrative interface</a>', array('@content_url' => '/admin/content')));
+      \Drupal::messenger()->addWarning(t('Also note that images already might be cached in the browser or by any intermediate HTTP cache. On live sites the only way to force browsers to redownload a cached image is to reupload the image with a different name.'));
     }
   }
 }
diff --git a/src/Tests/AdminTest.php b/src/Tests/AdminTest.php
index b8d3700..85adb17 100644
--- a/src/Tests/AdminTest.php
+++ b/src/Tests/AdminTest.php
@@ -6,6 +6,7 @@
 
 namespace Drupal\image_replace\Tests;
 
+use Drupal\Component\Render\FormattableMarkup;
 use Drupal\Component\Utility\SafeMarkup;
 use Drupal\image\Entity\ImageStyle;
 use Drupal\node\Entity\Node;
@@ -41,7 +42,7 @@ class AdminTest extends ImageReplaceTestBase {
     // the replacement image as replacement.
     $this->createImageField('image_original', 'article');
 
-    $display = entity_get_display('node', 'article', 'teaser');
+    $display = \Drupal::service('entity_display.repository')->getViewDisplay('node', 'article', 'teaser');
     $display_options = $display->getComponent('image_original');
     $display_options['type'] = 'image';
     $display_options['settings']['image_style'] = $this->styleName;
@@ -49,7 +50,7 @@ class AdminTest extends ImageReplaceTestBase {
     $display->setComponent('image_original', $display_options);
     $display->save();
 
-    $display = entity_get_display('node', 'article', 'full');
+    $display = \Drupal::service('entity_display.repository')->getViewDisplay('node', 'article', 'full');
     $display_options = $display->getComponent('image_original');
     $display_options['type'] = 'image';
     $display_options['settings']['image_style'] = NULL;
@@ -126,8 +127,8 @@ class AdminTest extends ImageReplaceTestBase {
       'title[0][value]' => $this->randomString(),
       'promote[value]' => 1,
     );
-    $edit['files[image_original_0]'] = drupal_realpath($original_file->getFileUri());
-    $edit['files[image_replacement_0]'] = drupal_realpath($replacement_file->getFileUri());
+    $edit['files[image_original_0]'] = \Drupal::service('file_system')->realpath($original_file->getFileUri());
+    $edit['files[image_replacement_0]'] = \Drupal::service('file_system')->realpath($replacement_file->getFileUri());
     $this->drupalPostForm('node/add/article', $edit, $this->getNodeSaveButtonText());
     $this->assertResponse(200);
 
@@ -150,7 +151,7 @@ class AdminTest extends ImageReplaceTestBase {
     $this->assertResponse(200);
 
     // Assert that the result is the original image.
-    $generated_uri = file_unmanaged_save_data($generated_image_data);
+    $generated_uri = \Drupal::service('file_system')->saveData($generated_image_data);
     $this->assertTrue($this->imageIsOriginal($generated_uri), 'The generated file should be the same as the original file on full node view.');
 
     // Verify that the replacement image is shown on the teaser.
@@ -158,13 +159,13 @@ class AdminTest extends ImageReplaceTestBase {
     $this->assertResponse(200);
     $generated_url = ImageStyle::load($this->styleName)->buildUrl($node->image_original->entity->getFileUri());
     $relative_url = file_url_transform_relative($generated_url);
-    $this->assertRaw(SafeMarkup::checkPlain($relative_url), SafeMarkup::format('Image displayed using style @style.', array('@style' => $this->styleName)));
+    $this->assertRaw(SafeMarkup::checkPlain($relative_url), new FormattableMarkup('Image displayed using style @style.', array('@style' => $this->styleName)));
 
     $generated_image_data = $this->drupalGet($generated_url);
     $this->assertResponse(200);
 
     // Assert that the result is the replacement image.
-    $generated_uri = file_unmanaged_save_data($generated_image_data);
+    $generated_uri = \Drupal::service('file_system')->saveData($generated_image_data);
     $this->assertTrue($this->imageIsReplacement($generated_uri), 'The generated file should be the same as the replacement file on teaser.');
 
     // Go back to the field settings and reset the replacement mapping.
diff --git a/src/Tests/EntityTest.php b/src/Tests/EntityTest.php
index d941150..fbe4c33 100644
--- a/src/Tests/EntityTest.php
+++ b/src/Tests/EntityTest.php
@@ -6,6 +6,7 @@
 
 namespace Drupal\image_replace\Tests;
 
+use Drupal\Component\Render\FormattableMarkup;
 use Drupal\Component\Utility\SafeMarkup;
 use Drupal\image\Entity\ImageStyle;
 use Drupal\node\Entity\Node;
@@ -50,7 +51,7 @@ class EntityTest extends ImageReplaceTestBase {
     ));
     $field->save();
 
-    $display = entity_get_display('node', 'article', 'teaser');
+    $display = \Drupal::service('entity_display.repository')->getViewDisplay('node', 'article', 'teaser');
     $display_options = $display->getComponent('image_original');
     $display_options['type'] = 'image';
     $display_options['settings']['image_style'] = $this->styleName;
@@ -58,7 +59,7 @@ class EntityTest extends ImageReplaceTestBase {
     $display->setComponent('image_original', $display_options);
     $display->save();
 
-    $display = entity_get_display('node', 'article', 'full');
+    $display = \Drupal::service('entity_display.repository')->getViewDisplay('node', 'article', 'full');
     $display_options = $display->getComponent('image_original');
     $display_options['type'] = 'image';
     $display_options['settings']['image_style'] = NULL;
@@ -92,13 +93,13 @@ class EntityTest extends ImageReplaceTestBase {
     $this->assertResponse(200);
     $generated_url = ImageStyle::load($this->styleName)->buildUrl($node->image_original->entity->getFileUri());
     $relative_url = file_url_transform_relative($generated_url);
-    $this->assertRaw(SafeMarkup::checkPlain($relative_url), SafeMarkup::format('Image displayed using style @style.', array('@style' => $this->styleName)));
+    $this->assertRaw(SafeMarkup::checkPlain($relative_url), new FormattableMarkup('Image displayed using style @style.', array('@style' => $this->styleName)));
 
     $generated_image_data = $this->drupalGet($generated_url);
     $this->assertResponse(200);
 
     // Assert that the result is the replacement image.
-    $generated_uri = file_unmanaged_save_data($generated_image_data);
+    $generated_uri = \Drupal::service('file_system')->saveData($generated_image_data);
     $this->assertTrue($this->imageIsReplacement($generated_uri), 'The generated file should be the same as the replacement file on teaser.');
 
     // Check full view.
@@ -112,7 +113,7 @@ class EntityTest extends ImageReplaceTestBase {
     $this->assertResponse(200);
 
     // Assert that the result is the original image.
-    $generated_uri = file_unmanaged_save_data($generated_image_data);
+    $generated_uri = \Drupal::service('file_system')->saveData($generated_image_data);
     $this->assertTrue($this->imageIsOriginal($generated_uri), 'The generated file should be the same as the original file on full node view.');
   }
 
diff --git a/src/Tests/ImageReplaceTestBase.php b/src/Tests/ImageReplaceTestBase.php
index b647d79..c2148e3 100644
--- a/src/Tests/ImageReplaceTestBase.php
+++ b/src/Tests/ImageReplaceTestBase.php
@@ -6,6 +6,7 @@
 
 namespace Drupal\image_replace\Tests;
 
+use Drupal\Core\File\FileSystemInterface;
 use Drupal\simpletest\WebTestBase;
 use Drupal\node\Entity\Node;
 use Drupal\field\Entity\FieldStorageConfig;
@@ -51,14 +52,14 @@ abstract class ImageReplaceTestBase extends WebTestBase {
     ]);
     $field_config->save();
 
-    entity_get_form_display('node', $type_name, 'default')
+    \Drupal::service('entity_display.repository')->getFormDisplay('node', $type_name, 'default')
       ->setComponent($name, array(
         'type' => 'image_image',
         'settings' => $widget_settings,
       ))
       ->save();
 
-    entity_get_display('node', $type_name, 'default')
+    \Drupal::service('entity_display.repository')->getViewDisplay('node', $type_name, 'default')
       ->setComponent($name)
       ->save();
 
@@ -97,7 +98,7 @@ abstract class ImageReplaceTestBase extends WebTestBase {
    */
   protected function createTestFiles() {
     // Generate test images.
-    $original_uri = file_unmanaged_copy(__DIR__ . '/fixtures/original.png', 'public://', FILE_EXISTS_RENAME);
+    $original_uri = file_unmanaged_copy(__DIR__ . '/fixtures/original.png', 'public://', FileSystemInterface::EXISTS_RENAME);
     $this->assertTrue($this->imageIsOriginal($original_uri));
     $this->assertFalse($this->imageIsReplacement($original_uri));
     $original_file = File::create([
@@ -108,7 +109,7 @@ abstract class ImageReplaceTestBase extends WebTestBase {
     ]);
     $original_file->save();
 
-    $replacement_uri = file_unmanaged_copy(__DIR__ . '/fixtures/replacement.png', 'public://', FILE_EXISTS_RENAME);
+    $replacement_uri = file_unmanaged_copy(__DIR__ . '/fixtures/replacement.png', 'public://', FileSystemInterface::EXISTS_RENAME);
     $this->assertTrue($this->imageIsReplacement($replacement_uri));
     $this->assertFalse($this->imageIsOriginal($replacement_uri));
     $replacement_file = File::create([
diff --git a/src/Tests/ReplaceEffectTest.php b/src/Tests/ReplaceEffectTest.php
index 010d48c..deeb9e5 100644
--- a/src/Tests/ReplaceEffectTest.php
+++ b/src/Tests/ReplaceEffectTest.php
@@ -44,7 +44,7 @@ class ReplaceEffectTest extends ImageReplaceTestBase {
     $this->assertResponse(200);
 
     // Assert that the result is the original image.
-    $generated_uri = file_unmanaged_save_data($generated_image_data);
+    $generated_uri = \Drupal::service('file_system')->saveData($generated_image_data);
     $this->assertTrue($this->imageIsOriginal($generated_uri), 'The generated file should be the same as the original file if there is no replacement mapping.');
 
     // Set up a replacement image.
@@ -57,7 +57,7 @@ class ReplaceEffectTest extends ImageReplaceTestBase {
     $this->assertResponse(200);
 
     // Assert that the result is the replacement image.
-    $generated_uri = file_unmanaged_save_data($generated_image_data);
+    $generated_uri = \Drupal::service('file_system')->saveData($generated_image_data);
     $this->assertTrue($this->imageIsReplacement($generated_uri), 'The generated file should be the same as the replacement file.');
 
     // Set up a replacement image.
@@ -70,7 +70,7 @@ class ReplaceEffectTest extends ImageReplaceTestBase {
     $this->assertResponse(200);
 
     // Assert that the result is the original image.
-    $generated_uri = file_unmanaged_save_data($generated_image_data);
+    $generated_uri = \Drupal::service('file_system')->saveData($generated_image_data);
     $this->assertTrue($this->imageIsOriginal($generated_uri), 'The generated file should be the same as the original file if the replacement mapping was removed.');
   }
 
