3v4l.org

run code in 300+ PHP versions simultaneously
<?php class Services { protected $services = []; public function get($id, callable $creator) { // Нет в кэше? Берём из creator'а if (! isset($this->services[$id])) $this->services[$id] = $creator(); // Возвращаем кэш return $this->services[$id]; } public function set($id, $service) { $this->services[$id] = $service; } } class Framework { protected static $services = null; public static function getServices() { if (is_null(static::$services)) { throw new \Exception('Не инициализировано'); } return static::$services; } public static function getRouter() { return static::getServices()->get('framework.router', function() { return "router"; }); } public static function init() // Можно в качестве аргумента передать нужную реализацию Services { static::$services = new Services(); } public static function run() { // Маршрутизация => Контроллер => Выполнение Response } } class CMS extends Framework { public static function getModulesManager() { return static::getServices()->get('cms.modulesmanager', function() { return "modulesManager"; }); } public static function run() { // Маршрутизация => Встроенные контроллеры/Модули => Выполнение Response } } // based on framework Framework::init() && Framework::run(); // где-то в компоненте: var_dump(Framework::getRouter()); // based on CMS CMS::init() && CMS::run(); // где-то в модуле: var_dump(CMS::getRouter()); var_dump(CMS::getModulesManager()); CMS::getServices()->set('framework.router', 'Ha, its not router!'); var_dump(CMS::getRouter());

Here you find the average performance (time & memory) of each version. A grayed out version indicates it didn't complete successfully (based on exit-code).

VersionSystem time (s)User time (s)Memory (MiB)
8.3.60.0140.00416.63
8.3.50.0100.01021.15
8.3.40.0070.00718.70
8.3.30.0090.00618.78
8.3.20.0040.00420.34
8.3.10.0040.00423.71
8.3.00.0060.00323.47
8.2.180.0110.00618.27
8.2.170.0000.01518.86
8.2.160.0140.00322.96
8.2.150.0080.00024.18
8.2.140.0080.00024.66
8.2.130.0060.00319.27
8.2.120.0050.00326.35
8.2.110.0100.00022.16
8.2.100.0120.00017.93
8.2.90.0000.00819.34
8.2.80.0000.00917.97
8.2.70.0040.00417.38
8.2.60.0040.00417.93
8.2.50.0030.00718.07
8.2.40.0090.00022.28
8.2.30.0040.00420.69
8.2.20.0040.00417.77
8.2.10.0040.00418.13
8.2.00.0030.00618.05
8.1.280.0130.00725.92
8.1.270.0150.00020.38
8.1.260.0040.00428.09
8.1.250.0040.00428.09
8.1.240.0030.00622.46
8.1.230.0040.00719.15
8.1.220.0050.00317.74
8.1.210.0050.00318.77
8.1.200.0060.00617.35
8.1.190.0000.00817.38
8.1.180.0000.00718.10
8.1.170.0050.00318.71
8.1.160.0000.00720.79
8.1.150.0090.00018.79
8.1.140.0030.00619.60
8.1.130.0050.00317.73
8.1.120.0000.01017.51
8.1.110.0040.00417.36
8.1.100.0040.00417.52
8.1.90.0030.00517.53
8.1.80.0080.00017.53
8.1.70.0000.00717.32
8.1.60.0000.00817.61
8.1.50.0050.00317.54
8.1.40.0030.00617.60
8.1.30.0030.00717.63
8.1.20.0040.00417.58
8.1.10.0030.00517.59
8.1.00.0050.00317.44
8.0.300.0080.00018.77
8.0.290.0040.00416.75
8.0.280.0070.00018.52
8.0.270.0070.00017.30
8.0.260.0000.00617.25
8.0.250.0000.00716.98
8.0.240.0040.00416.89
8.0.230.0000.00716.92
8.0.220.0040.00416.97
8.0.210.0030.00516.98
8.0.200.0070.00017.09
8.0.190.0090.00016.93
8.0.180.0040.00416.93
8.0.170.0040.00416.97
8.0.160.0000.00717.04
8.0.150.0040.00416.99
8.0.140.0070.00016.96
8.0.130.0000.00613.39
8.0.120.0000.00716.94
8.0.110.0040.00416.99
8.0.100.0070.00016.92
8.0.90.0050.00316.97
8.0.80.0120.00616.92
8.0.70.0000.00716.77
8.0.60.0000.00716.86
8.0.50.0040.00416.95
8.0.30.0120.00517.12
8.0.20.0100.00917.40
8.0.10.0000.00717.03
8.0.00.0090.00916.84
7.4.330.0050.00016.79
7.4.320.0060.00016.61
7.4.300.0030.00316.66
7.4.290.0030.00316.60
7.4.280.0030.00616.41
7.4.270.0030.00316.38
7.4.260.0030.00316.59
7.4.250.0040.00416.47
7.4.240.0000.00716.57
7.4.230.0030.00316.69
7.4.220.0040.01516.46
7.4.210.0060.00916.61
7.4.200.0000.00716.32
7.4.160.0090.00616.47
7.4.150.0080.01217.40
7.4.140.0170.00217.86
7.4.130.0100.00916.63
7.4.120.0100.01016.57
7.4.110.0130.00516.52
7.4.100.0130.01016.62
7.4.90.0130.00316.59
7.4.80.0120.00419.39
7.4.70.0090.01216.57
7.4.60.0140.00416.46
7.4.50.0040.01116.50
7.4.40.0040.01816.43
7.4.30.0120.01216.67
7.4.00.0030.01314.85
7.3.330.0060.00013.36
7.3.320.0000.00513.16
7.3.310.0000.00716.40
7.3.300.0000.00816.38
7.3.290.0110.00516.33
7.3.280.0130.00616.41
7.3.270.0150.00317.40
7.3.260.0100.00716.74
7.3.250.0160.00816.48
7.3.240.0100.00716.58
7.3.230.0070.01016.68
7.3.210.0170.00416.29
7.3.200.0120.00416.41
7.3.190.0030.01316.49
7.3.180.0100.00716.61
7.3.170.0030.01516.35
7.3.160.0120.00316.66
7.3.120.0090.00914.98
7.3.110.0090.00914.79
7.3.100.0060.00914.58
7.3.90.0090.00615.03
7.3.80.0070.00715.07
7.3.70.0030.01014.96
7.3.60.0040.01514.74
7.3.50.0040.01414.70
7.3.40.0000.01314.83
7.3.30.0000.01314.57
7.3.20.0040.01116.72
7.3.10.0000.01116.71
7.3.00.0100.00716.81
7.2.330.0100.00716.62
7.2.320.0100.01016.79
7.2.310.0070.01016.73
7.2.300.0070.01116.67
7.2.290.0090.01016.80
7.2.250.0090.00615.07
7.2.240.0130.00615.27
7.2.230.0150.00015.25
7.2.220.0050.00515.11
7.2.210.0110.00014.87
7.2.200.0100.00315.16
7.2.190.0110.00615.21
7.2.180.0030.00715.01
7.2.170.0040.00915.10
7.2.00.0040.01419.36
7.1.330.0040.01215.79
7.1.320.0060.00616.04
7.1.310.0000.01415.48
7.1.300.0060.01015.92
7.1.290.0000.01215.67
7.1.280.0090.00615.54
7.1.270.0060.00615.74
7.1.260.0060.01015.61
7.1.100.1180.01016.26
7.1.70.0040.00417.32
7.1.60.0040.00717.11
7.1.50.0070.00416.95
7.1.40.0060.01616.85
7.1.30.0030.01716.61
7.1.20.0040.01516.72
7.1.10.0090.00016.69
7.1.00.0030.01016.73
7.0.200.0100.00016.82
7.0.190.0000.00716.80
7.0.180.0030.00916.19
7.0.170.0060.00616.38
7.0.160.0000.00816.36
7.0.150.0000.00916.28
7.0.140.0070.00716.48
7.0.130.0030.00516.55
7.0.120.0000.01316.77
7.0.110.0070.00716.34
7.0.100.0000.01116.34
7.0.90.0050.00316.45
7.0.80.0040.00416.53
7.0.70.0000.01316.33
7.0.60.0000.00816.29
7.0.50.0000.01116.43
7.0.40.0040.00415.38
7.0.30.0000.00815.38
7.0.20.0000.00715.38
7.0.10.0000.00815.38
7.0.00.0040.00415.38
5.6.300.0030.04620.60
5.6.290.0000.06620.85
5.6.280.0030.05021.12
5.6.270.0000.05720.89
5.6.260.0030.05621.00
5.6.250.0030.04321.10
5.6.240.0000.04920.96
5.6.230.0030.05420.84
5.6.220.0160.05220.96
5.6.210.0070.03621.16
5.6.200.0030.04220.86
5.6.190.0070.03921.01
5.6.180.0070.03620.77
5.6.170.0000.04320.86
5.6.160.0000.04420.85
5.6.150.0030.05220.85
5.6.140.0070.04621.05
5.6.130.0030.06821.00
5.6.120.0070.04120.76
5.6.110.0130.03220.84
5.6.100.0030.04620.76
5.6.90.0030.04521.03
5.6.80.0130.04120.46
5.6.70.0030.04120.36
5.6.60.0030.04120.38
5.6.50.0130.04320.23
5.6.40.0030.05220.31
5.6.30.0000.04420.18
5.6.20.0030.06420.19
5.6.10.0030.03920.11
5.6.00.0060.03820.10
5.5.380.0060.03817.65
5.5.370.0030.04017.48
5.5.360.0060.05217.66
5.5.350.0060.03517.53
5.5.340.0030.04318.04
5.5.330.0000.04818.13
5.5.320.0000.04418.06
5.5.310.0000.04218.13
5.5.300.0000.04418.18
5.5.290.0030.06018.09
5.5.280.0070.04517.70
5.5.270.0000.04917.81
5.5.260.0040.04218.03
5.5.250.0040.04617.84
5.5.240.0030.04217.48
5.5.230.0070.03417.41
5.5.220.0000.04317.55
5.5.210.0030.03917.38
5.5.200.0060.03517.19
5.5.190.0070.05017.19
5.5.180.0000.04317.11
5.5.160.0000.03917.35
5.5.150.0070.03617.47
5.5.140.0030.03717.44
5.5.130.0060.04117.05
5.5.120.0030.03617.46
5.5.110.0070.03917.37
5.5.100.0030.04317.09
5.5.90.0000.03917.09
5.5.80.0030.03617.34
5.5.70.0090.03117.08
5.5.60.0000.03917.37
5.5.50.0030.03517.25
5.5.40.0000.06317.38
5.5.30.0000.03917.32
5.5.20.0040.04317.27
5.5.10.0030.04917.32
5.5.00.0000.04117.09

preferences:
32.17 ms | 401 KiB | 5 Q