Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Public Member Functions | Protected Member Functions | Protected Attributes
HhvmCompatibilityTest Class Reference
Inheritance diagram for HhvmCompatibilityTest:

Public Member Functions

 testAllowedIniGetSetDirectives ()
 

Protected Member Functions

 getFiles ()
 
 parseDirectives ($file)
 
 createMessage ($deniedDirectives)
 

Protected Attributes

 $allowedDirectives
 

Detailed Description

Definition at line 13 of file HhvmCompatibilityTest.php.

Member Function Documentation

◆ createMessage()

createMessage (   $deniedDirectives)
protected
Parameters
array$deniedDirectives
Returns
string

Definition at line 133 of file HhvmCompatibilityTest.php.

134  {
135  $message = 'HHVM-incompatible ini_get/ini_set options were found:';
136  foreach ($deniedDirectives as $file => $fileDeniedDirectives) {
137  $message .= "\n" . $file . ': [' . implode(', ', $fileDeniedDirectives) . ']';
138  }
139  return $message;
140  }
$message

◆ getFiles()

getFiles ( )
protected
Returns
array

Definition at line 100 of file HhvmCompatibilityTest.php.

101  {
102  return \array_merge(
103  Files::init()->getPhpFiles(
110  ),
111  Files::init()->getPhtmlFiles(false, false),
112  Files::init()->getFiles([BP . '/dev/'], '*.php')
113  );
114  }
const BP
Definition: autoload.php:14

◆ parseDirectives()

parseDirectives (   $file)
protected
Parameters
string$file
Returns
null|array

Definition at line 120 of file HhvmCompatibilityTest.php.

121  {
122  $content = file_get_contents($file);
123  $pattern = '/ini_[g|s]et\(\s*[\'|"]([\w\._]+?)[\'|"][\s\w,\'"]*\)/';
124  preg_match_all($pattern, $content, $matches);
125 
126  return $matches ? $matches[1] : null;
127  }
$pattern
Definition: website.php:22

◆ testAllowedIniGetSetDirectives()

testAllowedIniGetSetDirectives ( )

Test allowed directives.

@SuppressWarnings(PHPMD.NPathComplexity) @SuppressWarnings(PHPMD.CyclomaticComplexity)

Definition at line 68 of file HhvmCompatibilityTest.php.

69  {
70  $deniedDirectives = [];
71  foreach ($this->getFiles() as $file) {
72  $fileDirectives = $this->parseDirectives($file);
73  if ($fileDirectives) {
74  $fileDeniedDirectives = array_diff($fileDirectives, $this->allowedDirectives);
75  if ($fileDeniedDirectives) {
76  $deniedDirectivesInFile = array_unique($fileDeniedDirectives);
77  foreach ($deniedDirectivesInFile as $key => $deniedDirective) {
78  if (isset($this->whitelistVarsInFiles[$deniedDirective])) {
79  foreach ($this->whitelistVarsInFiles[$deniedDirective] as $whitelistFile) {
80  if (strpos($file, $whitelistFile) !== false) {
81  unset($deniedDirectivesInFile[$key]);
82  }
83  }
84  }
85  }
86  if ($deniedDirectivesInFile) {
87  $deniedDirectives[$file] = $deniedDirectivesInFile;
88  }
89  }
90  }
91  }
92  if ($deniedDirectives) {
93  $this->fail($this->createMessage($deniedDirectives));
94  }
95  }

Field Documentation

◆ $allowedDirectives

$allowedDirectives
protected
Initial value:
= [
'session.cookie_secure',
'session.cookie_httponly',
'session.use_cookies',
'session.use_only_cookies',
'session.referer_check',
'session.save_path',
'session.save_handler',
'session.cookie_lifetime',
'session.cookie_secure',
'date.timezone',
'memory_limit',
'max_execution_time',
'short_open_tag',
'disable_functions',
'asp_tags',
'apc.enabled',
'eaccelerator.enable',
'mime_magic.magicfile',
'display_errors',
'default_socket_timeout',
'pcre.recursion_limit',
'default_charset',
'precision',
'serialize_precision',
]

Definition at line 18 of file HhvmCompatibilityTest.php.


The documentation for this class was generated from the following file: