You are here

public function SiteAuditCheckExtensionsUnrecommended::getExtensions in Site Audit 7

Same name and namespace in other branches
  1. 8.2 Check/Extensions/Unrecommended.php \SiteAuditCheckExtensionsUnrecommended::getExtensions()

Get a list of unrecommended extension names and reasons.

Return value

array Keyed by module machine name, value is explanation.

1 call to SiteAuditCheckExtensionsUnrecommended::getExtensions()
SiteAuditCheckExtensionsUnrecommended::calculateScore in Check/Extensions/Unrecommended.php
Implements \SiteAudit\Check\Abstract\calculateScore().

File

Check/Extensions/Unrecommended.php, line 134
Contains \SiteAudit\Check\Extensions\Unrecommended.

Class

SiteAuditCheckExtensionsUnrecommended
Class SiteAuditCheckExtensionsUnrecommended.

Code

public function getExtensions() {
  $unrecommended_modules = array(
    'apc' => dt("APC takes away space for PHP's opcode cache, potentially degrading performance for high traffic and complex sites. Use redis or another similar caching backend."),
    'fast_404' => dt("Can cause 404s to be cached by Varnish; use Drupal's 404_fast_html instead"),
    'views_php' => dt('Unfinished and incomplete, Views PHP permits executable code to be stored in the database with no revisioning; a typo introduced in the Views UI can bring down an entire production site with no accountability. See http://api.drupal.org/api/views for details on how to implement your own custom Views functionality.'),
    'views_customfield' => dt('Views Custom Field contains the field for PHP code, which permits executable code to be stored in the database with no revisioning; a typo introduced in the Views UI can bring down an entire production site with no accountability. See http://api.drupal.org/api/views for details on how to implement your own custom Views functionality.'),
    'bad_judgement' => dt('Joke module, framework for anarchy.'),
    'misery' => dt('Joke module, degrades site performance.'),
    'supercron' => dt('Abandoned due to security concerns. https://drupal.org/node/1401644'),
  );
  if (drush_get_option('vendor') == 'acquia') {
    $acquia_unrecommended_modules = array(
      'pantheon_apachesolr' => dt('The Pantheon Solr integration does not work on Acquia.'),
      'pantheon_api' => dt('The Pantheon API does not work on Acquia.'),
      'pantheon_login' => dt('The Pantheon login integration does not work on Acquia.'),
      'redis' => dt('Acquia does not provide redis; instead, Memcached is provided as a service; see https://docs.acquia.com/cloud/performance/memcached'),
    );
    $unrecommended_modules = array_merge($unrecommended_modules, $acquia_unrecommended_modules);
  }
  if (drush_get_option('vendor') == 'pantheon') {
    $pantheon_unrecommended_modules = array(
      'memcache' => dt('Pantheon does not provide memcache; instead, redis is provided as a service; see http://helpdesk.getpantheon.com/customer/portal/articles/401317'),
      'memcache_storage' => dt('Pantheon does not provide memcache; instead, redis is provided as a service to all customers; see http://helpdesk.getpantheon.com/customer/portal/articles/401317'),
      'drupal_less' => dt('Before deployment, compile and commit CSS.'),
      'boost' => dt("Boost is optimal for shared hosts; Pantheon's Varnish caching layer handles anonymous page caching more efficiently."),
    );
    $unrecommended_modules = array_merge($unrecommended_modules, $pantheon_unrecommended_modules);
  }
  return $unrecommended_modules;
}