PHP Packagist :
- (CodeIgniter, Nette, Swift Mailer, Yii...).
set_error_handler(), ErrorException - (Zend, Symfony, Laravel, PHPUnit, Psy...). , (PHPMailer) set/restore.- , -, (PHPExcel).
, :
- , , .
- (, , , ). , . "" , , , .
- , , , , .
(*) , @ isset() , @ . , , isset() , , .
, : , - brew - , . : ( ):
<?php
error_reporting(-1);
ini_set('display_errors', false);
ini_set('log_errors', false);
define('ITERATIONS', 10000);
function warning_handler($errno, $errstr, $errfile, $errline){
throw new ErrorException($errstr, 0, $errno, $errfile, $errline);
}
echo sprintf('Running %s iterations on PHP/%s...' . PHP_EOL, number_format(ITERATIONS), phpversion());
$t0 = microtime(true);
for($i=0; $i<ITERATIONS; $i++){
fopen("FooA $i", 'r');
}
echo sprintf('Raw: % 6.3fs' . PHP_EOL, microtime(true) - $t0);
$t0 = microtime(true);
for($i=0; $i<ITERATIONS; $i++){
@fopen("FooB $i", 'r');
}
echo sprintf('@: % 6.3fs' . PHP_EOL, microtime(true) - $t0);
$t0 = microtime(true);
for($i=0; $i<ITERATIONS; $i++){
set_error_handler('warning_handler', E_WARNING);
try{
fopen("FooC $i", 'r');
restore_error_handler();
}catch(ErrorException $e){
restore_error_handler();
}
}
echo sprintf('Local set_error_handler(): % 6.3fs' . PHP_EOL, microtime(true) - $t0);
$t0 = microtime(true);
set_error_handler('warning_handler', E_WARNING);
for($i=0; $i<ITERATIONS; $i++){
try{
fopen("FooD $i", 'r');
}catch(ErrorException $e){
}
}
restore_error_handler();
echo sprintf('General set_error_handler(): % 6.3fs' . PHP_EOL, microtime(true) - $t0);
Windows 7 ( PHP x86):
Running 10,000 iterations on PHP/5.3.28...
Raw: 1.388s
@: 1.232s
Local set_error_handler(): 1.638s
General set_error_handler(): 1.497s
Running 10,000 iterations on PHP/5.4.24...
Raw: 1.170s
@: 1.185s
Local set_error_handler(): 1.357s
General set_error_handler(): 1.326s
Running 10,000 iterations on PHP/5.5.22...
Raw: 1.185s
@: 1.341s
Local set_error_handler(): 4.960s
General set_error_handler(): 4.570s
Running 10,000 iterations on PHP/5.6.10...
Raw: 1.139s
@: 1.139s
Local set_error_handler(): 1.263s
General set_error_handler(): 1.232s
Running 10,000 iterations on PHP/7.0.0beta1...
Raw: 1.232s
@: 1.279s
Local set_error_handler(): 1.669s
General set_error_handler(): 1.669s