diff --git a/core/modules/filter/lib/Drupal/filter/Tests/FilterSecurityTest.php b/core/modules/filter/lib/Drupal/filter/Tests/FilterSecurityTest.php
index 5928a4d..ab7e1bb 100644
--- a/core/modules/filter/lib/Drupal/filter/Tests/FilterSecurityTest.php
+++ b/core/modules/filter/lib/Drupal/filter/Tests/FilterSecurityTest.php
@@ -19,7 +19,7 @@ class FilterSecurityTest extends WebTestBase {
    *
    * @var array
    */
-  public static $modules = array('node', 'php', 'filter_test');
+  public static $modules = array('node', 'filter_test');
 
   /**
    * A user with administrative permissions.
diff --git a/core/modules/php/lib/Drupal/php/Tests/PhpAccessTest.php b/core/modules/php/lib/Drupal/php/Tests/PhpAccessTest.php
deleted file mode 100644
index f85c9f1..0000000
--- a/core/modules/php/lib/Drupal/php/Tests/PhpAccessTest.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-/**
- * @file
- * Definition of Drupal\php\Tests\PhpAccessTest.
- */
-
-namespace Drupal\php\Tests;
-
-/**
- * Tests to make sure access to the PHP filter is properly restricted.
- */
-class PhpAccessTest extends PhpTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'PHP filter access check',
-      'description' => 'Make sure that users who don\'t have access to the PHP filter can\'t see it.',
-      'group' => 'PHP',
-    );
-  }
-
-  /**
-   * Makes sure that the user can't use the PHP filter when not given access.
-   */
-  function testNoPrivileges() {
-    // Create node with PHP filter enabled.
-    $web_user = $this->drupalCreateUser(array('access content', 'create page content', 'edit own page content'));
-    $this->drupalLogin($web_user);
-    $node = $this->createNodeWithCode();
-
-    // Make sure that the PHP code shows up as text.
-    $this->drupalGet('node/' . $node->nid);
-    $this->assertText('print', 'PHP code was not evaluated.');
-
-    // Make sure that user doesn't have access to filter.
-    $this->drupalGet('node/' . $node->nid . '/edit');
-    $this->assertNoRaw('<option value="' . $this->php_code_format->format . '">', 'PHP code format not available.');
-  }
-}
diff --git a/core/modules/php/lib/Drupal/php/Tests/PhpFilterTest.php b/core/modules/php/lib/Drupal/php/Tests/PhpFilterTest.php
deleted file mode 100644
index ffab8c5..0000000
--- a/core/modules/php/lib/Drupal/php/Tests/PhpFilterTest.php
+++ /dev/null
@@ -1,49 +0,0 @@
-<?php
-
-/**
- * @file
- * Definition of Drupal\php\Tests\PhpFilterTest.
- */
-
-namespace Drupal\php\Tests;
-
-/**
- * Tests to make sure the PHP filter actually evaluates PHP code when used.
- */
-class PhpFilterTest extends PhpTestBase {
-  public static function getInfo() {
-    return array(
-      'name' => 'PHP filter functionality',
-      'description' => 'Make sure that PHP filter properly evaluates PHP code when enabled.',
-      'group' => 'PHP',
-    );
-  }
-
-  /**
-   * Makes sure that the PHP filter evaluates PHP code when used.
-   */
-  function testPhpFilter() {
-    // Log in as a user with permission to use the PHP code text format.
-    $php_code_permission = filter_permission_name(filter_format_load('php_code'));
-    $web_user = $this->drupalCreateUser(array('access content', 'create page content', 'edit own page content', $php_code_permission));
-    $this->drupalLogin($web_user);
-
-    // Create a node with PHP code in it.
-    $node = $this->createNodeWithCode();
-
-    // Make sure that the PHP code shows up as text.
-    $this->drupalGet('node/' . $node->nid);
-    $this->assertText('php print');
-
-    // Change filter to PHP filter and see that PHP code is evaluated.
-    $edit = array();
-    $langcode = LANGUAGE_NOT_SPECIFIED;
-    $edit["body[$langcode][0][format]"] = $this->php_code_format->format;
-    $this->drupalPost('node/' . $node->nid . '/edit', $edit, t('Save'));
-    $this->assertRaw(t('Basic page %title has been updated.', array('%title' => $node->label())), 'PHP code filter turned on.');
-
-    // Make sure that the PHP code shows up as text.
-    $this->assertNoText('print "SimpleTest PHP was executed!"', "PHP code isn't displayed.");
-    $this->assertText('SimpleTest PHP was executed!', 'PHP code has been evaluated.');
-  }
-}
diff --git a/core/modules/php/lib/Drupal/php/Tests/PhpTestBase.php b/core/modules/php/lib/Drupal/php/Tests/PhpTestBase.php
deleted file mode 100644
index 596ebd8..0000000
--- a/core/modules/php/lib/Drupal/php/Tests/PhpTestBase.php
+++ /dev/null
@@ -1,63 +0,0 @@
-<?php
-
-/**
- * @file
- * Definition of Drupal\php\Tests\PhpTestBase.
- */
-
-namespace Drupal\php\Tests;
-
-use Drupal\simpletest\WebTestBase;
-
-/**
- * Defines a base PHP test case class.
- */
-abstract class PhpTestBase extends WebTestBase {
-
-  /**
-   * Modules to enable.
-   *
-   * @var array
-   */
-  public static $modules = array('php');
-
-  protected $php_code_format;
-
-  function setUp() {
-    parent::setUp();
-
-    // Create Basic page node type.
-    $this->drupalCreateContentType(array('type' => 'page', 'name' => 'Basic page'));
-
-    // Create and login admin user.
-    $admin_user = $this->drupalCreateUser(array('administer filters'));
-    $this->drupalLogin($admin_user);
-
-    // Verify that the PHP code text format was inserted.
-    $php_format_id = 'php_code';
-    $this->php_code_format = filter_format_load($php_format_id);
-    $this->assertEqual($this->php_code_format->name, 'PHP code', 'PHP code text format was created.');
-
-    // Verify that the format has the PHP code filter enabled.
-    $filters = filter_list_format($php_format_id);
-    $this->assertTrue($filters['php_code']->status, 'PHP code filter is enabled.');
-
-    // Verify that the format exists on the administration page.
-    $this->drupalGet('admin/config/content/formats');
-    $this->assertText('PHP code', 'PHP code text format was created.');
-
-    // Verify that anonymous and authenticated user roles do not have access.
-    $this->drupalGet('admin/config/content/formats/' . $php_format_id);
-    $this->assertFieldByName('roles[' . DRUPAL_ANONYMOUS_RID . ']', FALSE, 'Anonymous users do not have access to PHP code format.');
-    $this->assertFieldByName('roles[' . DRUPAL_AUTHENTICATED_RID . ']', FALSE, 'Authenticated users do not have access to PHP code format.');
-  }
-
-  /**
-   * Creates a test node with PHP code in the body.
-   *
-   * @return stdObject Node object.
-   */
-  function createNodeWithCode() {
-    return $this->drupalCreateNode(array('body' => array(LANGUAGE_NOT_SPECIFIED => array(array('value' => '<?php print "SimpleTest PHP was executed!"; ?>')))));
-  }
-}
diff --git a/core/modules/php/php.info b/core/modules/php/php.info
deleted file mode 100644
index f155609..0000000
--- a/core/modules/php/php.info
+++ /dev/null
@@ -1,5 +0,0 @@
-name = PHP Filter
-description = Allows embedded PHP code/snippets to be evaluated.
-package = Core
-version = VERSION
-core = 8.x
diff --git a/core/modules/php/php.install b/core/modules/php/php.install
deleted file mode 100644
index 12944dd..0000000
--- a/core/modules/php/php.install
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-
-/**
- * @file
- * Install, update and uninstall functions for the php module.
- */
-
-/**
- * Implements hook_enable().
- */
-function php_enable() {
-  $format_exists = (bool) db_query_range('SELECT 1 FROM {filter_format} WHERE name = :name', 0, 1, array(':name' => 'PHP code'))->fetchField();
-  // Add a PHP code text format, if it does not exist. Do this only for the
-  // first install (or if the format has been manually deleted) as there is no
-  // reliable method to identify the format in an uninstall hook or in
-  // subsequent clean installs.
-  if (!$format_exists) {
-    $php_format = array(
-      'format' => 'php_code',
-      'name' => 'PHP code',
-      // 'Plain text' format is installed with a weight of 10 by default. Use a
-      // higher weight here to ensure that this format will not be the default
-      // format for anyone.
-      'weight' => 11,
-      'filters' => array(
-        // Enable the PHP evaluator filter.
-        'php_code' => array(
-          'weight' => 0,
-          'status' => 1,
-        ),
-      ),
-    );
-    $php_format = (object) $php_format;
-    filter_format_save($php_format);
-
-    drupal_set_message(t('A <a href="@php-code">PHP code</a> text format has been created.', array('@php-code' => url('admin/config/content/formats/' . $php_format->format))));
-  }
-}
-
-/**
- * Implements hook_disable().
- */
-function php_disable() {
-  drupal_set_message(t('The PHP module has been disabled. Any existing content that was using the PHP filter will now be visible in plain text. This might pose a security risk by exposing sensitive information, if any, used in the PHP code.'));
-}
diff --git a/core/modules/php/php.module b/core/modules/php/php.module
deleted file mode 100644
index 8e885e4..0000000
--- a/core/modules/php/php.module
+++ /dev/null
@@ -1,148 +0,0 @@
-<?php
-
-/**
- * @file
- * Additional filter for PHP input.
- */
-
-/**
- * Implements hook_help().
- */
-function php_help($path, $arg) {
-  switch ($path) {
-    case 'admin/help#php':
-      $output = '';
-      $output .= '<h3>' . t('About') . '</h3>';
-      $output .= '<p>' . t('The PHP Filter module adds a PHP filter to your site, for use with <a href="@filter">text formats</a>. This filter adds the ability to execute PHP code in any text field that uses a text format (such as the body of a content item or the text of a comment). <a href="@php-net">PHP</a> is a general-purpose scripting language widely-used for web development, and is the language with which Drupal has been developed. For more information, see the online handbook entry for the <a href="@php">PHP Filter module</a>.', array('@filter' => url('admin/help/filter'), '@php-net' => 'http://www.php.net', '@php' => 'http://drupal.org/documentation/modules/php')) . '</p>';
-      $output .= '<h3>' . t('Uses') . '</h3>';
-      $output .= '<dl>';
-      $output .= '<dt>' . t('Enabling execution of PHP in text fields') . '</dt>';
-      $output .= '<dd>' . t('The PHP Filter module allows users with the proper permissions to include custom PHP code that will get executed when pages of your site are processed. While this is a powerful and flexible feature if used by a trusted user with PHP experience, it is a significant and dangerous security risk in the hands of a malicious or inexperienced user. Even a trusted user may accidentally compromise the site by entering malformed or incorrect PHP code. Only the most trusted users should be granted permission to use the PHP filter, and all PHP code added through the PHP filter should be carefully examined before use. <a href="@php-snippets">Example PHP snippets</a> can be found on Drupal.org.', array('@php-snippets' => url('http://drupal.org/documentation/customization/php-snippets'))) . '</dd>';
-      $output .= '</dl>';
-      return $output;
-  }
-}
-
-/**
- * Implements hook_permission().
- */
-function php_permission() {
-  return array(
-    'use PHP for settings' => array(
-      'title' => t('Use PHP for settings'),
-      'restrict access' => TRUE,
-    ),
-  );
-}
-
-/**
- * Evaluates a string of PHP code.
- *
- * This is a wrapper around PHP's eval(). It uses output buffering to capture
- * both returned and printed text. Unlike eval(), we require code to be
- * surrounded by <?php ?> tags; in other words, we evaluate the code as if it
- * were a stand-alone PHP file.
- *
- * Using this wrapper also ensures that the PHP code which is evaluated can not
- * overwrite any variables in the calling code, unlike a regular eval() call.
- *
- * This function is also used as an implementation of
- * hook_filter_FILTER_process().
- *
- * @param $code
- *   The code to evaluate.
- *
- * @return
- *   A string containing the printed output of the code, followed by the
- *   returned output of the code.
- *
- * @ingroup php_wrappers
- *
- * @see php_filter_info()
- */
-function php_eval($code) {
-  global $theme_path, $theme_info, $conf;
-
-  // Store current theme path.
-  $old_theme_path = $theme_path;
-
-  // Restore theme_path to the theme, as long as php_eval() executes,
-  // so code evaluated will not see the caller module as the current theme.
-  // If theme info is not initialized get the path from theme_default.
-  if (!isset($theme_info)) {
-    $theme_path = drupal_get_path('theme', $conf['theme_default']);
-  }
-  else {
-    $theme_path = dirname($theme_info->filename);
-  }
-
-  ob_start();
-  print eval('?>' . $code);
-  $output = ob_get_contents();
-  ob_end_clean();
-
-  // Recover original theme path.
-  $theme_path = $old_theme_path;
-
-  return $output;
-}
-
-/**
- * Implements hook_filter_FILTER_tips().
- *
- * @see php_filter_info()
- */
-function _php_filter_tips($filter, $format, $long = FALSE) {
-  global $base_url;
-  if ($long) {
-    $output = '<h4>' . t('Using custom PHP code') . '</h4>';
-    $output .= '<p>' . t('Custom PHP code may be embedded in some types of site content, including posts and blocks. While embedding PHP code inside a post or block is a powerful and flexible feature when used by a trusted user with PHP experience, it is a significant and dangerous security risk when used improperly. Even a small mistake when posting PHP code may accidentally compromise your site.') . '</p>';
-    $output .= '<p>' . t('If you are unfamiliar with PHP, SQL, or Drupal, avoid using custom PHP code within posts. Experimenting with PHP may corrupt your database, render your site inoperable, or significantly compromise security.') . '</p>';
-    $output .= '<p>' . t('Notes:') . '</p>';
-    $output .= '<ul><li>' . t('Remember to double-check each line for syntax and logic errors <strong>before</strong> saving.') . '</li>';
-    $output .= '<li>' . t('Statements must be correctly terminated with semicolons.') . '</li>';
-    $output .= '<li>' . t('Global variables used within your PHP code retain their values after your script executes.') . '</li>';
-    $output .= '<li>' . t('<code>register_globals</code> is <strong>turned off</strong>. If you need to use forms, understand and use the functions in <a href="@formapi">the Drupal Form API</a>.', array('@formapi' => url('http://api.drupal.org/api/group/form_api/8'))) . '</li>';
-    $output .= '<li>' . t('Use a <code>print</code> or <code>return</code> statement in your code to output content.') . '</li>';
-    $output .= '<li>' . t('Develop and test your PHP code using a separate test script and sample database before deploying on a production site.') . '</li>';
-    $output .= '<li>' . t('Consider including your custom PHP code within a site-specific module or <code>template.php</code> file rather than embedding it directly into a post or block.') . '</li>';
-    $output .= '<li>' . t('Be aware that the ability to embed PHP code within content is provided by the PHP Filter module. If this module is disabled or deleted, then blocks and posts with embedded PHP may display, rather than execute, the PHP code.') . '</li></ul>';
-    $output .= '<p>' . t('A basic example: <em>Creating a "Welcome" block that greets visitors with a simple message.</em>') . '</p>';
-    $output .= '<ul><li>' . t('<p>Add a custom block to your site, named "Welcome" . With its text format set to "PHP code" (or another format supporting PHP input), add the following in the Block body:</p>
-<pre>
-print t(\'Welcome visitor! Thank you for visiting.\');
-</pre>') . '</li>';
-    $output .= '<li>' . t('<p>To display the name of a registered user, use this instead:</p>
-<pre>
-global $user;
-if ($user->uid) {
-  print t(\'Welcome @name! Thank you for visiting.\', array(\'@name\' => user_format_name($user)));
-}
-else {
-  print t(\'Welcome visitor! Thank you for visiting.\');
-}
-</pre>') . '</li></ul>';
-    $output .= '<p>' . t('<a href="@drupal">Drupal.org</a> offers <a href="@php-snippets">some example PHP snippets</a>, or you can create your own with some PHP experience and knowledge of the Drupal system.', array('@drupal' => url('http://drupal.org'), '@php-snippets' => url('http://drupal.org/documentation/customization/php-snippets'))) . '</p>';
-    return $output;
-  }
-  else {
-    return t('You may post PHP code. You should include &lt;?php ?&gt; tags.');
-  }
-}
-
-/**
- * Implements hook_filter_info().
- *
- * Provide PHP code filter. Use with care.
- */
-function php_filter_info() {
-  $filters['php_code'] = array(
-    'title' => t('PHP evaluator'),
-    'type' => FILTER_TYPE_MARKUP_LANGUAGE,
-    'description' => t('Executes a piece of PHP code. The usage of this filter should be restricted to administrators only!'),
-    'process callback' => 'php_eval',
-    'tips callback' => '_php_filter_tips',
-    'cache' => FALSE,
-  );
-  return $filters;
-}
diff --git a/core/modules/system/lib/Drupal/system/Tests/Bootstrap/GetFilenameUnitTest.php b/core/modules/system/lib/Drupal/system/Tests/Bootstrap/GetFilenameUnitTest.php
index 27ea1d7..0367fcc 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Bootstrap/GetFilenameUnitTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Bootstrap/GetFilenameUnitTest.php
@@ -30,7 +30,7 @@ function testDrupalGetFilename() {
     // does not exist.
     $this->assertFalse(drupal_container()->has('keyvalue'), 'The container has no keyvalue service.');
     // Retrieving the location of a module.
-    $this->assertIdentical(drupal_get_filename('module', 'php'), 'core/modules/php/php.module', 'Retrieve module location.');
+    $this->assertIdentical(drupal_get_filename('module', 'xmlrpc'), 'core/modules/xmlrpc/xmlrpc.module', 'Retrieve module location.');
 
     // Retrieving the location of a theme.
     $this->assertIdentical(drupal_get_filename('theme', 'stark'), 'core/themes/stark/stark.info', 'Retrieve theme location.');
diff --git a/core/modules/system/lib/Drupal/system/Tests/Common/CascadingStylesheetsTest.php b/core/modules/system/lib/Drupal/system/Tests/Common/CascadingStylesheetsTest.php
index 30cf24e..ddc4926 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Common/CascadingStylesheetsTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Common/CascadingStylesheetsTest.php
@@ -116,41 +116,6 @@ function testRenderInlineNoPreprocess() {
   }
 
   /**
-   * Tests rendering inline stylesheets through a full page request.
-   */
-  function testRenderInlineFullPage() {
-    module_enable(array('php'));
-
-    $css = 'body { font-size: 254px; }';
-    // Inline CSS is minified unless 'preprocess' => FALSE is passed as a
-    // drupal_add_css() option.
-    $expected = 'body{font-size:254px;}';
-
-    // Create Basic page node type.
-    $this->drupalCreateContentType(array('type' => 'page', 'name' => 'Basic page'));
-
-    // Create a node, using the PHP filter that tests drupal_add_css().
-    $php_format_id = 'php_code';
-    $settings = array(
-      'type' => 'page',
-      'body' => array(
-        LANGUAGE_NOT_SPECIFIED => array(
-          array(
-            'value' => t('This tests the inline CSS!') . "<?php drupal_add_css('$css', 'inline'); ?>",
-            'format' => $php_format_id,
-          ),
-        ),
-      ),
-      'promote' => 1,
-    );
-    $node = $this->drupalCreateNode($settings);
-
-    // Fetch the page.
-    $this->drupalGet('node/' . $node->nid);
-    $this->assertRaw($expected, 'Inline stylesheets appear in the full page rendering.');
-  }
-
-  /**
    * Tests CSS ordering.
    */
   function testRenderOrder() {
diff --git a/core/modules/system/lib/Drupal/system/Tests/Module/DependencyTest.php b/core/modules/system/lib/Drupal/system/Tests/Module/DependencyTest.php
index 8fa84fe..3d2b3e4 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Module/DependencyTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Module/DependencyTest.php
@@ -136,9 +136,9 @@ function testModuleEnableOrder() {
     // module_test creates a dependency chain:
     // - forum depends on taxonomy, comment, history, and poll (via module_test)
     // - taxonomy depends on options
-    // - poll depends on php (via module_test)
+    // - poll depends on xmlrpc (via module_test)
     // The correct enable order is:
-    $expected_order = array('comment', 'history', 'options', 'taxonomy', 'php', 'poll', 'forum');
+    $expected_order = array('comment', 'history', 'options', 'taxonomy', 'xmlrpc', 'poll', 'forum');
 
     // Enable the modules through the UI, verifying that the dependency chain
     // is correct.
@@ -146,15 +146,15 @@ function testModuleEnableOrder() {
     $edit['modules[Core][forum][enable]'] = 'forum';
     $this->drupalPost('admin/modules', $edit, t('Save configuration'));
     $this->assertModules(array('forum'), FALSE);
-    $this->assertText(t('You must enable the History, Taxonomy, Options, Comment, Poll, PHP Filter modules to install Forum.'));
+    $this->assertText(t('You must enable the History, Taxonomy, Options, Comment, Poll, XML-RPC modules to install Forum.'));
     $edit['modules[Core][history][enable]'] = 'history';
     $edit['modules[Core][options][enable]'] = 'options';
     $edit['modules[Core][taxonomy][enable]'] = 'taxonomy';
     $edit['modules[Core][comment][enable]'] = 'comment';
     $edit['modules[Core][poll][enable]'] = 'poll';
-    $edit['modules[Core][php][enable]'] = 'php';
+    $edit['modules[Core][xmlrpc][enable]'] = 'xmlrpc';
     $this->drupalPost('admin/modules', $edit, t('Save configuration'));
-    $this->assertModules(array('forum', 'poll', 'php', 'comment', 'history', 'taxonomy', 'options'), TRUE);
+    $this->assertModules(array('forum', 'poll', 'xmlrpc', 'comment', 'history', 'taxonomy', 'options'), TRUE);
 
     // Check the actual order which is saved by module_test_modules_enabled().
     $module_order = state()->get('system_test.module_enable_order') ?: array();
diff --git a/core/modules/system/lib/Drupal/system/Tests/Module/ModuleApiTest.php b/core/modules/system/lib/Drupal/system/Tests/Module/ModuleApiTest.php
index 85a4184..79e5472 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Module/ModuleApiTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Module/ModuleApiTest.php
@@ -155,7 +155,7 @@ function testDependencyResolution() {
     $this->assertTrue(module_exists('module_test'), 'Test module is enabled.');
     $this->assertFalse(module_exists('forum'), 'Forum module is disabled.');
     $this->assertFalse(module_exists('poll'), 'Poll module is disabled.');
-    $this->assertFalse(module_exists('php'), 'PHP module is disabled.');
+    $this->assertFalse(module_exists('xmlrpc'), 'XML-RPC module is disabled.');
 
     // First, create a fake missing dependency. Forum depends on poll, which
     // depends on a made-up module, foo. Nothing should be installed.
@@ -166,26 +166,26 @@ function testDependencyResolution() {
     $this->assertFalse(module_exists('forum'), 'module_enable() aborts if dependencies are missing.');
 
     // Now, fix the missing dependency. Forum module depends on poll, but poll
-    // depends on the PHP module. module_enable() should work.
+    // depends on the XML-RPC module. module_enable() should work.
     state()->set('module_test.dependency', 'dependency');
     drupal_static_reset('system_rebuild_module_data');
     $result = module_enable(array('forum'));
     $this->assertTrue($result, 'module_enable() returns the correct value.');
     // Verify that the fake dependency chain was installed.
-    $this->assertTrue(module_exists('poll') && module_exists('php'), 'Dependency chain was installed by module_enable().');
+    $this->assertTrue(module_exists('poll') && module_exists('xmlrpc'), 'Dependency chain was installed by module_enable().');
     // Verify that the original module was installed.
     $this->assertTrue(module_exists('forum'), 'Module installation with unlisted dependencies succeeded.');
     // Finally, verify that the modules were enabled in the correct order.
     $module_order = state()->get('system_test.module_enable_order') ?: array();
-    $this->assertEqual($module_order, array('php', 'poll', 'forum'), 'Modules were enabled in the correct order by module_enable().');
+    $this->assertEqual($module_order, array('xmlrpc', 'poll', 'forum'), 'Modules were enabled in the correct order by module_enable().');
 
-    // Now, disable the PHP module. Both forum and poll should be disabled as
+    // Now, disable the XML-RPC module. Both forum and poll should be disabled as
     // well, in the correct order.
-    module_disable(array('php'));
+    module_disable(array('xmlrpc'));
     $this->assertTrue(!module_exists('forum') && !module_exists('poll'), 'Depedency chain was disabled by module_disable().');
-    $this->assertFalse(module_exists('php'), 'Disabling a module with unlisted dependents succeeded.');
+    $this->assertFalse(module_exists('xmlrpc'), 'Disabling a module with unlisted dependents succeeded.');
     $disabled_modules = state()->get('module_test.disable_order') ?: array();
-    $this->assertEqual($disabled_modules, array('forum', 'poll', 'php'), 'Modules were disabled in the correct order by module_disable().');
+    $this->assertEqual($disabled_modules, array('forum', 'poll', 'xmlrpc'), 'Modules were disabled in the correct order by module_disable().');
 
     // Disable a module that is listed as a dependency by the installation
     // profile. Make sure that the profile itself is not on the list of
@@ -200,25 +200,25 @@ function testDependencyResolution() {
     $this->assertTrue(in_array('comment', $disabled_modules), 'Comment module is in the list of disabled modules.');
     $this->assertFalse(in_array($profile, $disabled_modules), 'The installation profile is not in the list of disabled modules.');
 
-    // Try to uninstall the PHP module by itself. This should be rejected,
+    // Try to uninstall the XML-RPC module by itself. This should be rejected,
     // since the modules which it depends on need to be uninstalled first, and
     // that is too destructive to perform automatically.
-    $result = module_uninstall(array('php'));
+    $result = module_uninstall(array('xmlrpc'));
     $this->assertFalse($result, 'Calling module_uninstall() on a module whose dependents are not uninstalled fails.');
-    foreach (array('forum', 'poll', 'php') as $module) {
+    foreach (array('forum', 'poll', 'xmlrpc') as $module) {
       $this->assertNotEqual(drupal_get_installed_schema_version($module), SCHEMA_UNINSTALLED, format_string('The @module module was not uninstalled.', array('@module' => $module)));
     }
 
     // Now uninstall all three modules explicitly, but in the incorrect order,
     // and make sure that drupal_uninstal_modules() uninstalled them in the
     // correct sequence.
-    $result = module_uninstall(array('poll', 'php', 'forum'));
+    $result = module_uninstall(array('poll', 'xmlrpc', 'forum'));
     $this->assertTrue($result, 'module_uninstall() returns the correct value.');
-    foreach (array('forum', 'poll', 'php') as $module) {
+    foreach (array('forum', 'poll', 'xmlrpc') as $module) {
       $this->assertEqual(drupal_get_installed_schema_version($module), SCHEMA_UNINSTALLED, format_string('The @module module was uninstalled.', array('@module' => $module)));
     }
     $uninstalled_modules = state()->get('module_test.uninstall_order') ?: array();
-    $this->assertEqual($uninstalled_modules, array('forum', 'poll', 'php'), 'Modules were uninstalled in the correct order by module_uninstall().');
+    $this->assertEqual($uninstalled_modules, array('forum', 'poll', 'xmlrpc'), 'Modules were uninstalled in the correct order by module_uninstall().');
 
     // Uninstall the profile module from above, and make sure that the profile
     // itself is not on the list of dependent modules to be uninstalled.
@@ -230,25 +230,25 @@ function testDependencyResolution() {
     $this->assertFalse(in_array($profile, $uninstalled_modules), 'The installation profile is not in the list of uninstalled modules.');
 
     // Enable forum module again, which should enable both the poll module and
-    // php module. But, this time do it with poll module declaring a dependency
-    // on a specific version of php module in its info file. Make sure that
+    // xmlrpc module. But, this time do it with poll module declaring a dependency
+    // on a specific version of xmlrpc module in its info file. Make sure that
     // module_enable() still works.
     state()->set('module_test.dependency', 'version dependency');
     drupal_static_reset('system_rebuild_module_data');
     $result = module_enable(array('forum'));
     $this->assertTrue($result, 'module_enable() returns the correct value.');
     // Verify that the fake dependency chain was installed.
-    $this->assertTrue(module_exists('poll') && module_exists('php'), 'Dependency chain was installed by module_enable().');
+    $this->assertTrue(module_exists('poll') && module_exists('xmlrpc'), 'Dependency chain was installed by module_enable().');
     // Verify that the original module was installed.
     $this->assertTrue(module_exists('forum'), 'Module installation with version dependencies succeeded.');
     // Finally, verify that the modules were enabled in the correct order.
     $enable_order = state()->get('system_test.module_enable_order') ?: array();
-    $php_position = array_search('php', $enable_order);
+    $xmlrpc_position = array_search('xmlrpc', $enable_order);
     $poll_position = array_search('poll', $enable_order);
     $forum_position = array_search('forum', $enable_order);
-    $php_before_poll = $php_position !== FALSE && $poll_position !== FALSE && $php_position < $poll_position;
+    $xmlrpc_before_poll = $xmlrpc_position !== FALSE && $poll_position !== FALSE && $xmlrpc_position < $poll_position;
     $poll_before_forum = $poll_position !== FALSE && $forum_position !== FALSE && $poll_position < $forum_position;
-    $this->assertTrue($php_before_poll && $poll_before_forum, 'Modules were enabled in the correct order by module_enable().');
+    $this->assertTrue($xmlrpc_before_poll && $poll_before_forum, 'Modules were enabled in the correct order by module_enable().');
   }
 
   /**
diff --git a/core/modules/system/system.module b/core/modules/system/system.module
index cdf7b90..2d21dad 100644
--- a/core/modules/system/system.module
+++ b/core/modules/system/system.module
@@ -223,6 +223,10 @@ function system_permission() {
     'access site reports' => array(
       'title' => t('View site reports'),
     ),
+    'use PHP for settings' => array(
+      'title' => t('Use PHP for settings'),
+      'restrict access' => TRUE,
+    ),
   );
 }
 
diff --git a/core/modules/system/tests/modules/module_test/module_test.module b/core/modules/system/tests/modules/module_test/module_test.module
index facf3c4..0429219 100644
--- a/core/modules/system/tests/modules/module_test/module_test.module
+++ b/core/modules/system/tests/modules/module_test/module_test.module
@@ -31,8 +31,8 @@ function module_test_system_info_alter(&$info, $file, $type) {
       $info['dependencies'][] = 'poll';
     }
     elseif ($file->name == 'poll') {
-      // Make poll depend on php module.
-      $info['dependencies'][] = 'php';
+      // Make poll depend on xmlrpc module.
+      $info['dependencies'][] = 'xmlrpc';
     }
   }
   elseif (state()->get('module_test.dependency') == 'version dependency') {
@@ -41,11 +41,11 @@ function module_test_system_info_alter(&$info, $file, $type) {
       $info['dependencies'][] = 'poll';
     }
     elseif ($file->name == 'poll') {
-      // Make poll depend on a specific version of php module.
-      $info['dependencies'][] = 'php (1.x)';
+      // Make poll depend on a specific version of xmlrpc module.
+      $info['dependencies'][] = 'xmlrpc (1.x)';
     }
-    elseif ($file->name == 'php') {
-      // Set php module to a version compatible with the above.
+    elseif ($file->name == 'xmlrpc') {
+      // Set xmlrpc module to a version compatible with the above.
       $info['version'] = '8.x-1.0';
     }
   }
