function unicode_requirements

Same name in other branches
  1. 7.x includes/unicode.inc \unicode_requirements()

Moves unicode_requirements() logic to system_requirements().

Deprecated

in drupal:8.4.0 and is removed from drupal:9.0.0.

See also

https://www.drupal.org/node/2884698

File

core/includes/unicode.inc, line 21

Code

function unicode_requirements() {
    @trigger_error('unicode_requirements() is deprecated in Drupal 8.4.0 and will be removed before Drupal 9.0.0. There is no replacement; system_requirements() now includes the logic instead. See https://www.drupal.org/node/2884698', E_USER_DEPRECATED);
    $libraries = [
        Unicode::STATUS_SINGLEBYTE => t('Standard PHP'),
        Unicode::STATUS_MULTIBYTE => t('PHP Mbstring Extension'),
        Unicode::STATUS_ERROR => t('Error'),
    ];
    $severities = [
        Unicode::STATUS_SINGLEBYTE => REQUIREMENT_WARNING,
        Unicode::STATUS_MULTIBYTE => NULL,
        Unicode::STATUS_ERROR => REQUIREMENT_ERROR,
    ];
    $failed_check = Unicode::check();
    $library = Unicode::getStatus();
    $requirements['unicode'] = [
        'title' => t('Unicode library'),
        'value' => $libraries[$library],
        'severity' => $severities[$library],
    ];
    switch ($failed_check) {
        case 'mb_strlen':
            $requirements['unicode']['description'] = t('Operations on Unicode strings are emulated on a best-effort basis. Install the <a href="http://php.net/mbstring">PHP mbstring extension</a> for improved Unicode support.');
            break;
        case 'mbstring.func_overload':
            $requirements['unicode']['description'] = t('Multibyte string function overloading in PHP is active and must be disabled. Check the php.ini <em>mbstring.func_overload</em> setting. Please refer to the <a href="http://php.net/mbstring">PHP mbstring documentation</a> for more information.');
            break;
        case 'mbstring.encoding_translation':
            $requirements['unicode']['description'] = t('Multibyte string input conversion in PHP is active and must be disabled. Check the php.ini <em>mbstring.encoding_translation</em> setting. Please refer to the <a href="http://php.net/mbstring">PHP mbstring documentation</a> for more information.');
            break;
        case 'mbstring.http_input':
            $requirements['unicode']['description'] = t('Multibyte string input conversion in PHP is active and must be disabled. Check the php.ini <em>mbstring.http_input</em> setting. Please refer to the <a href="http://php.net/mbstring">PHP mbstring documentation</a> for more information.');
            break;
        case 'mbstring.http_output':
            $requirements['unicode']['description'] = t('Multibyte string output conversion in PHP is active and must be disabled. Check the php.ini <em>mbstring.http_output</em> setting. Please refer to the <a href="http://php.net/mbstring">PHP mbstring documentation</a> for more information.');
            break;
    }
    return $requirements;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.