ZipArchive.close() changes its behaviour in PHP7. The function ignores directories in PHP5 but fails in PHP7 with:
Unexpected PHP error [ZipArchive::close(): Read error: Is a directory]
The following code works in PHP5 but not in PHP7:
<?php
// test.php
$zip = new ZipArchive();
$zip->open('/tmp/test.zip', ZipArchive::CREATE);
$zip->addFile('.', '.');
$ret = $zip->close();
echo "Closed with: " . ($ret ? "true" : "false") . "\n";
?>
For php5:
php --version
PHP 5.5.38-1-avature-ondrej-fork (cli) (built: Aug 31 2016 16:37:38)
php test.php
Closed with: true
For php7:
php --version
PHP 7.0.8-0ubuntu0.16.04.2 (cli) ( NTS )
php test.php
Closed with: false