--TEST-- Phar: create and modify phar --SKIPIF-- --INI-- phar.readonly=0 phar.require_hash=1 opcache.validate_timestamps=1 --FILE-- getSignature(); include $pname . '/a.php'; if (function_exists("opcache_get_status")) { $status = opcache_get_status(); if (is_array($status) && ($status["opcache_enabled"] || (isset($status["file_cache_only"]) && $status["file_cache_only"]))) { opcache_invalidate($pname . '/a.php', true); // opcache_invalidate is buggy and doesn't work as expected so we add a // minor delay here. sleep(2); } } file_put_contents($pname .'/a.php', "modified!\n"); file_put_contents($pname .'/b.php', "another!\n"); $phar = new Phar($fname); $sig2 = $phar->getSignature(); var_dump($sig1['hash']); var_dump($sig2['hash']); var_dump($sig1['hash'] != $sig2['hash']); include $pname . '/a.php'; include $pname . '/b.php'; ?> --CLEAN-- --EXPECTF-- brand new! string(40) "%s" string(40) "%s" bool(true) modified! another!