3v4l.org

run code in 300+ PHP versions simultaneously
<?php class CheckPlateform { //All values if not explicit //PHP version const MIN_ALLOWED_PHP_VERSION = "5.0.0"; const MAX_ALLOWED_PHP_VERSION = null;//excluded //Memory const MIN_ALLOWED_MEMORY_CLI = 512;//In M const MAX_ALLOWED_MEMORY_CLI = null;//In M const MIN_ALLOWED_MEMORY_WEB = 128;//In M const MAX_ALLOWED_MEMORY_WEB = null;//In M //Execution time const MIN_ALLOWED_EXECUTION_TIME_CLI = 30;//in s const MAX_ALLOWED_EXECUTION_TIME_CLI = null;//in s const MIN_ALLOWED_EXECUTION_TIME_WEB = 30;//in s const MAX_ALLOWED_EXECUTION_TIME_WEB = null;//in s //Internet access const CHECK_INTERNET_ACCESS = true;//or false //MySql const MYSQL_HOST = 'localhost';//or null const MIN_ALLOWED_MYSQL_VERSION = "5.5.0"; const MAX_ALLOWED_MYSQL_VERSION = null;//excluded //List of allowed handlers protected $expectedApi = array( 'cli', 'apache2handler' ); //List of necessary Apache modules protected $expectedApacheModules = array( 'mod_rewrite' ); //List of allowed operating systems protected $expectedOS = array( 'windows', 'linux' ); //List of allowed architectures protected $expectedArchitecture = array( 'amd64', 'x86_64' ); //List of necessary PHP extensions protected $expectedExtensions = array(//Extension name 'json', 'SPL', 'PDO', 'SimpleXML', 'curl', 'xsl' ); //List of necessary PHP classes protected $expectedClasses = array(//Class name 'Silex\Application', 'Monolog\Logger', 'Symfony\Component\Console\Application', 'Symfony\Component\Form\Form', 'Symfony\Component\Security\Core\SecurityContext', 'Symfony\Component\Translation\Translator', 'Symfony\Component\Validator\Validator', 'Swift_Mailer', 'Knp\Snappy\Pdf', 'Doctrine\ORM\EntityManager', 'Carbon\Carbon' ); //List of necessary files with access rights protected $expectedFileFolders = array(//Folder relative path form project root 'vendor/h4cc/wkhtmltopdf-amd64/bin/' => 'R', 'var/log' => 'RW', 'var' => 'RW' ); /* * DO NOT EDIT BELOW */ const METHOD_PREFIX = 'assert'; private $lineBreak; private $apiSuffix; public function __construct() { $this->lineBreak = ('cli' == php_sapi_name() ? "\n" : "<br/>"); $this->apiSuffix = ('cli' == php_sapi_name() ? "_CLI" : "_WEB"); } public function execute() { //Loop through all check methods by introspection $methods = get_class_methods(__CLASS__); $finalReturn = true; foreach ($methods as $method) { if (self::METHOD_PREFIX == substr($method, 0, strlen(self::METHOD_PREFIX))) { $return = $this->$method(); $finalReturn = $finalReturn && $return; echo str_pad($method, 50, '.') . ($return ? 'OK' : 'KO <<<') . $this->lineBreak; } } return $finalReturn; } protected function assertApi() { $api = php_sapi_name(); foreach ($this->expectedApi as $expectedApi) { if (0 == strcasecmp($api, $expectedApi)) { return true; } } echo 'Current API : ' . $api . $this->lineBreak; return false; } protected function assertOS() { $os = php_uname("s"); foreach ($this->expectedOS as $expectedOS) { if ( false !== stripos($os, $expectedOS)) { return true; } } echo 'Current OS : ' . $os . $this->lineBreak; return false; } protected function assertArchitecture() { $archi = php_uname("m"); foreach ($this->expectedArchitecture as $expectedArchitecture) { if (0 == strcasecmp($archi, $expectedArchitecture)) { return true; } } echo 'Current Architecture : ' . $archi . $this->lineBreak; return false; } protected function assertPhpVersion() { $return = true; if (!is_null(self::MIN_ALLOWED_PHP_VERSION)) { $return = version_compare(PHP_VERSION, self::MIN_ALLOWED_PHP_VERSION, '>='); } if (!is_null(self::MAX_ALLOWED_PHP_VERSION)) { $return = $return && version_compare(PHP_VERSION, self::MAX_ALLOWED_PHP_VERSION, '<'); } if(!$return) { echo 'Current PHP version : ' . phpversion() . $this->lineBreak; } return $return; } protected function assertMemory() { $mem = intval(ini_get('memory_limit')); $min = constant('self::MIN_ALLOWED_MEMORY' . $this->apiSuffix); $max = constant('self::MAX_ALLOWED_MEMORY' . $this->apiSuffix); $return = true; if (!is_null($min)) { $return = $mem >= $min; } if (!is_null($max)) { $return = $return && ($mem <= $max); } if(!$return) { echo 'Current memory : ' . $mem . $this->lineBreak; } return $return; } protected function assertExecutionTime() { $time = ini_get('max_execution_time'); $time = (0 != $time) ? $time : PHP_INT_MAX; $min = constant('self::MIN_ALLOWED_EXECUTION_TIME' . $this->apiSuffix); $max = constant('self::MAX_ALLOWED_EXECUTION_TIME' . $this->apiSuffix); $return = true; if (!is_null($min)) { $return = $time >= $max; } if (!is_null($max)) { $return = $time && ($mem <= $max); } if(!$return) { echo 'Current execution time : ' . $time . $this->lineBreak; } return $return; } protected function assertApacheModules() { if (!function_exists('apache_get_modules')) {//By-pass return true; } $modules = apache_get_modules(); foreach ($this->expectedApacheModules as $expectedApacheModule) { if (!in_array($expectedApacheModule, $modules)) { echo 'Missing module : ' . $expectedApacheModule . $this->lineBreak; return false; } } return true; } protected function assertExtensions() { $extensions = get_loaded_extensions(); foreach ($this->expectedExtensions as $expectedExtension) { if (!in_array($expectedExtension, $extensions)) { echo 'Missing extension : ' . $expectedExtension . $this->lineBreak; return false; } } return true; } } //Launch check $checker = new CheckPlateform(); return $checker->execute() ? 0 : -1;
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 6, Position 2 = 8
Branch analysis from position: 6
1 jumps found. (Code = 42) Position 1 = 9
Branch analysis from position: 9
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 8
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/GMGI9
function name:  (null)
number of ops:  11
compiled vars:  !0 = $checker
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  217     0  E >   NEW                                              $1      'CheckPlateform'
          1        DO_FCALL                                      0          
          2        ASSIGN                                                   !0, $1
  218     3        INIT_METHOD_CALL                                         !0, 'execute'
          4        DO_FCALL                                      0  $4      
          5      > JMPZ                                                     $4, ->8
          6    >   QM_ASSIGN                                        ~5      0
          7      > JMP                                                      ->9
          8    >   QM_ASSIGN                                        ~5      -1
          9    > > RETURN                                                   ~5
         10*     > RETURN                                                   1

Class CheckPlateform:
Function __construct:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 4, Position 2 = 6
Branch analysis from position: 4
1 jumps found. (Code = 42) Position 1 = 7
Branch analysis from position: 7
2 jumps found. (Code = 43) Position 1 = 13, Position 2 = 15
Branch analysis from position: 13
1 jumps found. (Code = 42) Position 1 = 16
Branch analysis from position: 16
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 15
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 6
2 jumps found. (Code = 43) Position 1 = 13, Position 2 = 15
Branch analysis from position: 13
Branch analysis from position: 15
filename:       /in/GMGI9
function name:  __construct
number of ops:  19
compiled vars:  none
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   83     0  E >   INIT_FCALL                                               'php_sapi_name'
          1        DO_ICALL                                         $1      
          2        IS_EQUAL                                                 $1, 'cli'
          3      > JMPZ                                                     ~2, ->6
          4    >   QM_ASSIGN                                        ~3      '%0A'
          5      > JMP                                                      ->7
          6    >   QM_ASSIGN                                        ~3      '%3Cbr%2F%3E'
          7    >   ASSIGN_OBJ                                               'lineBreak'
          8        OP_DATA                                                  ~3
   84     9        INIT_FCALL                                               'php_sapi_name'
         10        DO_ICALL                                         $5      
         11        IS_EQUAL                                                 $5, 'cli'
         12      > JMPZ                                                     ~6, ->15
         13    >   QM_ASSIGN                                        ~7      '_CLI'
         14      > JMP                                                      ->16
         15    >   QM_ASSIGN                                        ~7      '_WEB'
         16    >   ASSIGN_OBJ                                               'apiSuffix'
         17        OP_DATA                                                  ~7
   85    18      > RETURN                                                   null

End of function __construct

Function execute:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 6, Position 2 = 34
Branch analysis from position: 6
2 jumps found. (Code = 78) Position 1 = 7, Position 2 = 34
Branch analysis from position: 7
2 jumps found. (Code = 43) Position 1 = 14, Position 2 = 33
Branch analysis from position: 14
2 jumps found. (Code = 46) Position 1 = 18, Position 2 = 19
Branch analysis from position: 18
2 jumps found. (Code = 43) Position 1 = 26, Position 2 = 28
Branch analysis from position: 26
1 jumps found. (Code = 42) Position 1 = 29
Branch analysis from position: 29
1 jumps found. (Code = 42) Position 1 = 6
Branch analysis from position: 6
Branch analysis from position: 28
1 jumps found. (Code = 42) Position 1 = 6
Branch analysis from position: 6
Branch analysis from position: 19
Branch analysis from position: 33
Branch analysis from position: 34
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 34
filename:       /in/GMGI9
function name:  execute
number of ops:  37
compiled vars:  !0 = $methods, !1 = $finalReturn, !2 = $method, !3 = $return
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   89     0  E >   INIT_FCALL                                               'get_class_methods'
          1        SEND_VAL                                                 'CheckPlateform'
          2        DO_ICALL                                         $4      
          3        ASSIGN                                                   !0, $4
   90     4        ASSIGN                                                   !1, <true>
   91     5      > FE_RESET_R                                       $7      !0, ->34
          6    > > FE_FETCH_R                                               $7, !2, ->34
   92     7    >   INIT_FCALL                                               'substr'
          8        SEND_VAR                                                 !2
          9        SEND_VAL                                                 0
         10        SEND_VAL                                                 6
         11        DO_ICALL                                         $8      
         12        IS_EQUAL                                                 $8, 'assert'
         13      > JMPZ                                                     ~9, ->33
   93    14    >   INIT_METHOD_CALL                                         !2
         15        DO_FCALL                                      0  $10     
         16        ASSIGN                                                   !3, $10
   94    17      > JMPZ_EX                                          ~12     !1, ->19
         18    >   BOOL                                             ~12     !3
         19    >   ASSIGN                                                   !1, ~12
   95    20        INIT_FCALL                                               'str_pad'
         21        SEND_VAR                                                 !2
         22        SEND_VAL                                                 50
         23        SEND_VAL                                                 '.'
         24        DO_ICALL                                         $14     
         25      > JMPZ                                                     !3, ->28
         26    >   QM_ASSIGN                                        ~15     'OK'
         27      > JMP                                                      ->29
         28    >   QM_ASSIGN                                        ~15     'KO+%3C%3C%3C'
         29    >   CONCAT                                           ~16     $14, ~15
         30        FETCH_OBJ_R                                      ~17     'lineBreak'
         31        CONCAT                                           ~18     ~16, ~17
         32        ECHO                                                     ~18
   91    33    > > JMP                                                      ->6
         34    >   FE_FREE                                                  $7
   98    35      > RETURN                                                   !1
   99    36*     > RETURN                                                   null

End of function execute

Function assertapi:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 5, Position 2 = 15
Branch analysis from position: 5
2 jumps found. (Code = 78) Position 1 = 6, Position 2 = 15
Branch analysis from position: 6
2 jumps found. (Code = 43) Position 1 = 12, Position 2 = 14
Branch analysis from position: 12
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 14
1 jumps found. (Code = 42) Position 1 = 5
Branch analysis from position: 5
Branch analysis from position: 15
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 15
filename:       /in/GMGI9
function name:  assertApi
number of ops:  22
compiled vars:  !0 = $api, !1 = $expectedApi
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  103     0  E >   INIT_FCALL                                               'php_sapi_name'
          1        DO_ICALL                                         $2      
          2        ASSIGN                                                   !0, $2
  104     3        FETCH_OBJ_R                                      ~4      'expectedApi'
          4      > FE_RESET_R                                       $5      ~4, ->15
          5    > > FE_FETCH_R                                               $5, !1, ->15
  105     6    >   INIT_FCALL                                               'strcasecmp'
          7        SEND_VAR                                                 !0
          8        SEND_VAR                                                 !1
          9        DO_ICALL                                         $6      
         10        IS_EQUAL                                                 $6, 0
         11      > JMPZ                                                     ~7, ->14
  106    12    >   FE_FREE                                                  $5
         13      > RETURN                                                   <true>
  104    14    > > JMP                                                      ->5
         15    >   FE_FREE                                                  $5
  109    16        CONCAT                                           ~8      'Current+API+%3A+', !0
         17        FETCH_OBJ_R                                      ~9      'lineBreak'
         18        CONCAT                                           ~10     ~8, ~9
         19        ECHO                                                     ~10
  110    20      > RETURN                                                   <false>
  111    21*     > RETURN                                                   null

End of function assertapi

Function assertos:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 6, Position 2 = 16
Branch analysis from position: 6
2 jumps found. (Code = 78) Position 1 = 7, Position 2 = 16
Branch analysis from position: 7
2 jumps found. (Code = 43) Position 1 = 13, Position 2 = 15
Branch analysis from position: 13
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 15
1 jumps found. (Code = 42) Position 1 = 6
Branch analysis from position: 6
Branch analysis from position: 16
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 16
filename:       /in/GMGI9
function name:  assertOS
number of ops:  23
compiled vars:  !0 = $os, !1 = $expectedOS
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  115     0  E >   INIT_FCALL                                               'php_uname'
          1        SEND_VAL                                                 's'
          2        DO_ICALL                                         $2      
          3        ASSIGN                                                   !0, $2
  116     4        FETCH_OBJ_R                                      ~4      'expectedOS'
          5      > FE_RESET_R                                       $5      ~4, ->16
          6    > > FE_FETCH_R                                               $5, !1, ->16
  117     7    >   INIT_FCALL                                               'stripos'
          8        SEND_VAR                                                 !0
          9        SEND_VAR                                                 !1
         10        DO_ICALL                                         $6      
         11        TYPE_CHECK                                  1018          $6
         12      > JMPZ                                                     ~7, ->15
  118    13    >   FE_FREE                                                  $5
         14      > RETURN                                                   <true>
  116    15    > > JMP                                                      ->6
         16    >   FE_FREE                                                  $5
  121    17        CONCAT                                           ~8      'Current+OS+%3A+', !0
         18        FETCH_OBJ_R                                      ~9      'lineBreak'
         19        CONCAT                                           ~10     ~8, ~9
         20        ECHO                                                     ~10
  122    21      > RETURN                                                   <false>
  123    22*     > RETURN                                                   null

End of function assertos

Function assertarchitecture:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 6, Position 2 = 16
Branch analysis from position: 6
2 jumps found. (Code = 78) Position 1 = 7, Position 2 = 16
Branch analysis from position: 7
2 jumps found. (Code = 43) Position 1 = 13, Position 2 = 15
Branch analysis from position: 13
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 15
1 jumps found. (Code = 42) Position 1 = 6
Branch analysis from position: 6
Branch analysis from position: 16
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 16
filename:       /in/GMGI9
function name:  assertArchitecture
number of ops:  23
compiled vars:  !0 = $archi, !1 = $expectedArchitecture
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  127     0  E >   INIT_FCALL                                               'php_uname'
          1        SEND_VAL                                                 'm'
          2        DO_ICALL                                         $2      
          3        ASSIGN                                                   !0, $2
  128     4        FETCH_OBJ_R                                      ~4      'expectedArchitecture'
          5      > FE_RESET_R                                       $5      ~4, ->16
          6    > > FE_FETCH_R                                               $5, !1, ->16
  129     7    >   INIT_FCALL                                               'strcasecmp'
          8        SEND_VAR                                                 !0
          9        SEND_VAR                                                 !1
         10        DO_ICALL                                         $6      
         11        IS_EQUAL                                                 $6, 0
         12      > JMPZ                                                     ~7, ->15
  130    13    >   FE_FREE                                                  $5
         14      > RETURN                                                   <true>
  128    15    > > JMP                                                      ->6
         16    >   FE_FREE                                                  $5
  133    17        CONCAT                                           ~8      'Current+Architecture+%3A+', !0
         18        FETCH_OBJ_R                                      ~9      'lineBreak'
         19        CONCAT                                           ~10     ~8, ~9
         20        ECHO                                                     ~10
  134    21      > RETURN                                                   <false>
  135    22*     > RETURN                                                   null

End of function assertarchitecture

Function assertphpversion:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 4, Position 2 = 10
Branch analysis from position: 4
2 jumps found. (Code = 43) Position 1 = 13, Position 2 = 21
Branch analysis from position: 13
2 jumps found. (Code = 46) Position 1 = 14, Position 2 = 20
Branch analysis from position: 14
2 jumps found. (Code = 43) Position 1 = 23, Position 2 = 29
Branch analysis from position: 23
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 29
Branch analysis from position: 20
Branch analysis from position: 21
Branch analysis from position: 10
filename:       /in/GMGI9
function name:  assertPhpVersion
number of ops:  31
compiled vars:  !0 = $return
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  139     0  E >   ASSIGN                                                   !0, <true>
  140     1        TYPE_CHECK                                    2  ~2      '5.0.0'
          2        BOOL_NOT                                         ~3      ~2
          3      > JMPZ                                                     ~3, ->10
  141     4    >   INIT_FCALL                                               'version_compare'
          5        SEND_VAL                                                 '8.0.0'
          6        SEND_VAL                                                 '5.0.0'
          7        SEND_VAL                                                 '%3E%3D'
          8        DO_ICALL                                         $4      
          9        ASSIGN                                                   !0, $4
  143    10    >   TYPE_CHECK                                    2  ~6      null
         11        BOOL_NOT                                         ~7      ~6
         12      > JMPZ                                                     ~7, ->21
  144    13    > > JMPZ_EX                                          ~8      !0, ->20
         14    >   INIT_FCALL                                               'version_compare'
         15        SEND_VAL                                                 '8.0.0'
         16        SEND_VAL                                                 null
         17        SEND_VAL                                                 '%3C'
         18        DO_ICALL                                         $9      
         19        BOOL                                             ~8      $9
         20    >   ASSIGN                                                   !0, ~8
  146    21    >   BOOL_NOT                                         ~11     !0
         22      > JMPZ                                                     ~11, ->29
  147    23    >   INIT_FCALL                                               'phpversion'
         24        DO_ICALL                                         $12     
         25        CONCAT                                           ~13     'Current+PHP+version+%3A+', $12
         26        FETCH_OBJ_R                                      ~14     'lineBreak'
         27        CONCAT                                           ~15     ~13, ~14
         28        ECHO                                                     ~15
  149    29    > > RETURN                                                   !0
  150    30*     > RETURN                                                   null

End of function assertphpversion

Function assertmemory:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 21, Position 2 = 23
Branch analysis from position: 21
2 jumps found. (Code = 43) Position 1 = 26, Position 2 = 30
Branch analysis from position: 26
2 jumps found. (Code = 46) Position 1 = 27, Position 2 = 29
Branch analysis from position: 27
2 jumps found. (Code = 43) Position 1 = 32, Position 2 = 36
Branch analysis from position: 32
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 36
Branch analysis from position: 29
Branch analysis from position: 30
Branch analysis from position: 23
filename:       /in/GMGI9
function name:  assertMemory
number of ops:  38
compiled vars:  !0 = $mem, !1 = $min, !2 = $max, !3 = $return
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  154     0  E >   INIT_FCALL                                               'ini_get'
          1        SEND_VAL                                                 'memory_limit'
          2        DO_ICALL                                         $4      
          3        CAST                                          4  ~5      $4
          4        ASSIGN                                                   !0, ~5
  155     5        INIT_FCALL                                               'constant'
          6        FETCH_OBJ_R                                      ~7      'apiSuffix'
          7        CONCAT                                           ~8      'self%3A%3AMIN_ALLOWED_MEMORY', ~7
          8        SEND_VAL                                                 ~8
          9        DO_ICALL                                         $9      
         10        ASSIGN                                                   !1, $9
  156    11        INIT_FCALL                                               'constant'
         12        FETCH_OBJ_R                                      ~11     'apiSuffix'
         13        CONCAT                                           ~12     'self%3A%3AMAX_ALLOWED_MEMORY', ~11
         14        SEND_VAL                                                 ~12
         15        DO_ICALL                                         $13     
         16        ASSIGN                                                   !2, $13
  157    17        ASSIGN                                                   !3, <true>
  158    18        TYPE_CHECK                                    2  ~16     !1
         19        BOOL_NOT                                         ~17     ~16
         20      > JMPZ                                                     ~17, ->23
  159    21    >   IS_SMALLER_OR_EQUAL                              ~18     !1, !0
         22        ASSIGN                                                   !3, ~18
  161    23    >   TYPE_CHECK                                    2  ~20     !2
         24        BOOL_NOT                                         ~21     ~20
         25      > JMPZ                                                     ~21, ->30
  162    26    > > JMPZ_EX                                          ~22     !3, ->29
         27    >   IS_SMALLER_OR_EQUAL                              ~23     !0, !2
         28        BOOL                                             ~22     ~23
         29    >   ASSIGN                                                   !3, ~22
  164    30    >   BOOL_NOT                                         ~25     !3
         31      > JMPZ                                                     ~25, ->36
  165    32    >   CONCAT                                           ~26     'Current+memory+%3A+', !0
         33        FETCH_OBJ_R                                      ~27     'lineBreak'
         34        CONCAT                                           ~28     ~26, ~27
         35        ECHO                                                     ~28
  167    36    > > RETURN                                                   !3
  168    37*     > RETURN                                                   null

End of function assertmemory

Function assertexecutiontime:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 6, Position 2 = 8
Branch analysis from position: 6
1 jumps found. (Code = 42) Position 1 = 9
Branch analysis from position: 9
2 jumps found. (Code = 43) Position 1 = 26, Position 2 = 28
Branch analysis from position: 26
2 jumps found. (Code = 43) Position 1 = 31, Position 2 = 35
Branch analysis from position: 31
2 jumps found. (Code = 46) Position 1 = 32, Position 2 = 34
Branch analysis from position: 32
2 jumps found. (Code = 43) Position 1 = 37, Position 2 = 41
Branch analysis from position: 37
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 41
Branch analysis from position: 34
Branch analysis from position: 35
Branch analysis from position: 28
Branch analysis from position: 8
2 jumps found. (Code = 43) Position 1 = 26, Position 2 = 28
Branch analysis from position: 26
Branch analysis from position: 28
filename:       /in/GMGI9
function name:  assertExecutionTime
number of ops:  43
compiled vars:  !0 = $time, !1 = $min, !2 = $max, !3 = $return, !4 = $mem
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  172     0  E >   INIT_FCALL                                               'ini_get'
          1        SEND_VAL                                                 'max_execution_time'
          2        DO_ICALL                                         $5      
          3        ASSIGN                                                   !0, $5
  173     4        IS_NOT_EQUAL                                             !0, 0
          5      > JMPZ                                                     ~7, ->8
          6    >   QM_ASSIGN                                        ~8      !0
          7      > JMP                                                      ->9
          8    >   QM_ASSIGN                                        ~8      9223372036854775807
          9    >   ASSIGN                                                   !0, ~8
  174    10        INIT_FCALL                                               'constant'
         11        FETCH_OBJ_R                                      ~10     'apiSuffix'
         12        CONCAT                                           ~11     'self%3A%3AMIN_ALLOWED_EXECUTION_TIME', ~10
         13        SEND_VAL                                                 ~11
         14        DO_ICALL                                         $12     
         15        ASSIGN                                                   !1, $12
  175    16        INIT_FCALL                                               'constant'
         17        FETCH_OBJ_R                                      ~14     'apiSuffix'
         18        CONCAT                                           ~15     'self%3A%3AMAX_ALLOWED_EXECUTION_TIME', ~14
         19        SEND_VAL                                                 ~15
         20        DO_ICALL                                         $16     
         21        ASSIGN                                                   !2, $16
  176    22        ASSIGN                                                   !3, <true>
  177    23        TYPE_CHECK                                    2  ~19     !1
         24        BOOL_NOT                                         ~20     ~19
         25      > JMPZ                                                     ~20, ->28
  178    26    >   IS_SMALLER_OR_EQUAL                              ~21     !2, !0
         27        ASSIGN                                                   !3, ~21
  180    28    >   TYPE_CHECK                                    2  ~23     !2
         29        BOOL_NOT                                         ~24     ~23
         30      > JMPZ                                                     ~24, ->35
  181    31    > > JMPZ_EX                                          ~25     !0, ->34
         32    >   IS_SMALLER_OR_EQUAL                              ~26     !4, !2
         33        BOOL                                             ~25     ~26
         34    >   ASSIGN                                                   !3, ~25
  183    35    >   BOOL_NOT                                         ~28     !3
         36      > JMPZ                                                     ~28, ->41
  184    37    >   CONCAT                                           ~29     'Current+execution+time+%3A+', !0
         38        FETCH_OBJ_R                                      ~30     'lineBreak'
         39        CONCAT                                           ~31     ~29, ~30
         40        ECHO                                                     ~31
  186    41    > > RETURN                                                   !3
  187    42*     > RETURN                                                   null

End of function assertexecutiontime

Function assertapachemodules:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 5, Position 2 = 6
Branch analysis from position: 5
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 6
2 jumps found. (Code = 77) Position 1 = 11, Position 2 = 25
Branch analysis from position: 11
2 jumps found. (Code = 78) Position 1 = 12, Position 2 = 25
Branch analysis from position: 12
2 jumps found. (Code = 43) Position 1 = 18, Position 2 = 24
Branch analysis from position: 18
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 24
1 jumps found. (Code = 42) Position 1 = 11
Branch analysis from position: 11
Branch analysis from position: 25
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 25
filename:       /in/GMGI9
function name:  assertApacheModules
number of ops:  28
compiled vars:  !0 = $modules, !1 = $expectedApacheModule
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  191     0  E >   INIT_FCALL                                               'function_exists'
          1        SEND_VAL                                                 'apache_get_modules'
          2        DO_ICALL                                         $2      
          3        BOOL_NOT                                         ~3      $2
          4      > JMPZ                                                     ~3, ->6
  192     5    > > RETURN                                                   <true>
  194     6    >   INIT_FCALL_BY_NAME                                       'apache_get_modules'
          7        DO_FCALL                                      0  $4      
          8        ASSIGN                                                   !0, $4
  195     9        FETCH_OBJ_R                                      ~6      'expectedApacheModules'
         10      > FE_RESET_R                                       $7      ~6, ->25
         11    > > FE_FETCH_R                                               $7, !1, ->25
  196    12    >   INIT_FCALL                                               'in_array'
         13        SEND_VAR                                                 !1
         14        SEND_VAR                                                 !0
         15        DO_ICALL                                         $8      
         16        BOOL_NOT                                         ~9      $8
         17      > JMPZ                                                     ~9, ->24
  197    18    >   CONCAT                                           ~10     'Missing+module+%3A+', !1
         19        FETCH_OBJ_R                                      ~11     'lineBreak'
         20        CONCAT                                           ~12     ~10, ~11
         21        ECHO                                                     ~12
  198    22        FE_FREE                 

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
161.79 ms | 1428 KiB | 39 Q