From eaef0319d22655692e909512756b6347481ecd6c Mon Sep 17 00:00:00 2001 From: Steph Fox Date: Mon, 25 Feb 2008 16:15:57 +0000 Subject: [PATCH] Make it possible to read the TODO file on a laptop :) --- ext/phar/TODO | 88 ++++++++++++++++++++++++++++----------------------- 1 file changed, 49 insertions(+), 39 deletions(-) diff --git a/ext/phar/TODO b/ext/phar/TODO index edf38b04e4..13e0649297 100644 --- a/ext/phar/TODO +++ b/ext/phar/TODO @@ -1,14 +1,14 @@ Version 1.0.0 X make permissions in the lowest bits of flags to simplify using them [Greg] - X implement ini handler for phar.readonly and phar.require_hash that allows - enabling it on PHP_INI_ALL if it is disabled in the system, but does not + X implement ini handler for phar.readonly and phar.require_hash that allows + enabling it on PHP_INI_ALL if it is disabled in the system, but does not allow disabling it if it is enabled in the system [Greg] X implement reading in metadata in manifest as [Marcus] X implement writing out of metadata to new manifest [Marcus] - X if SPL is disabled, enable only static methods of class Phar and disable + X if SPL is disabled, enable only static methods of class Phar and disable class PharFileInfo completely [Marcus] - X implement in-phar locking, so that a file that is opened for reading can't + X implement in-phar locking, so that a file that is opened for reading can't have a handle opened for writing [Marcus/Greg] X docs on file format/manifest description [Greg] X docs on uses [Greg] @@ -17,30 +17,32 @@ Version 1.0.0 X Phar->begin()/Phar->commit() for specifying a new stub to the phar, and deferring flush until all modifications are complete [Greg] X Phar->getStub() for retrieving the stub of the phar [Marcus] - X add setUncompressed(), setCompressedGZ() and setCompressedBZ2() to + X add setUncompressed(), setCompressedGZ() and setCompressedBZ2() to PharFileInfo class [Greg] - X add uncompressAllFiles(), compressAllFilesGZ() and compressAllFilesBZ2() + X add uncompressAllFiles(), compressAllFilesGZ() and compressAllFilesBZ2() to Phar class [Greg] X add PharFileInfo::setMetaData($metadata) [Marcus] X add PharFileInfo::getMetaData() [Marcus] - X always throw exceptions from the Phar object, and E_RECOVERABLE_ERROR from + X always throw exceptions from the Phar object, and E_RECOVERABLE_ERROR from streams interface [Greg] - X Phar archive metadata Phar::setMetaData($metadata) Phar::getMetaData() [Greg] + X Phar archive metadata Phar::setMetaData($metadata) Phar::getMetaData() + [Greg] X support rename() in stream wrapper [Greg] X update docs to reflect changes in error handling [Greg] - X fix 011.phpt, 029.phpt for uncaught exceptions causing bad cleanup [Marcus/Greg] - + X fix 011.phpt, 029.phpt for uncaught exceptions causing bad cleanup + [Marcus/Greg] + Version 1.1.0 - X Ability connect a phar file 'phar://whatever' to a directory. That way all - access to that phar archive are directed to the extracted directory. This - allows to have the installed files and the archieve keep the same includes. - [Marcus] + X Ability to connect a phar file 'phar://whatever' to a directory. That way + all access to that phar archive are directed to the extracted directory. + This allows to have the installed files and the archive keep the same + includes. [Marcus] X add SHA-2 (256, 512) support [Marcus] - X setSignatureAlgorithm() and Phar::MD5 Phar::SHA1 Phar::SHA256 Phar::SHA512 Phar::PGP to - choose the kind of signature to use (PGP falls back to SHA1) [Greg] + X setSignatureAlgorithm() and Phar::MD5 Phar::SHA1 Phar::SHA256 Phar::SHA512 + Phar::PGP to choose the kind of signature to use (PGP falls back to SHA1) + [Greg] - Version 1.2.0 X add PharFileInfo::hasMetadata(), PharFileInfo::delMetadata() [Marcus] @@ -48,7 +50,8 @@ Version 1.2.0 X fix Phar::CanWrite() [Marcus] X add preliminary phar command (phar.php) [Marcus] X add phar command (phar.phar) [Marcus] - X list all available compression methods using Phar::getSupportedCompression() [Marcus] + X list all available compression methods using + Phar::getSupportedCompression() [Marcus] X Remove RINIT [Marcus] Version 1.2.1 @@ -60,33 +63,39 @@ Version 1.2.1 Version 2.0.0 - X implement webPhar() rewrite as a callback that returns FALSE to deny access, or a string - representing a file within the archive to access. If unknown, the callback should return - the original request uri [Greg] - * implement automatic "mounting" of internal phar archives so that phar:///path/to/archive.phar/internal.phar/file - opens internal.phar and maps its manifest inside archive.phar. The manifest entry inside archive.phar - would be named "internal.phar/file". write access to internal files inside an internal phar would be - denied, as the entire archive must be added or removed at the same time. + X implement webPhar() rewrite as a callback that returns FALSE to deny + access, or a string representing a file within the archive to access. If + unknown, the callback should return the original request uri [Greg] + * implement automatic "mounting" of internal phar archives so that + phar:///path/to/archive.phar/internal.phar/file opens internal.phar and + maps its manifest inside archive.phar. The manifest entry inside + archive.phar would be named "internal.phar/file". Write access to internal + files inside an internal phar would be denied, as the entire archive must + be added or removed at the same time. * rework filename detection so that alias is always checked first * make aliases containing '/' or '\' invalid - * implement manual mounting of external phar archives to locations inside a phar path, - $phar->mount('/path/to/external.phar', 'internal/path'); - this would travers external.phar's manifest, and add each entry as a virtual entry just like - automatic mounting of internal phars - X implement manual mounting of external paths to a directory inside a phar path. Because the mapping - would be to an external directory, write access would be allowed always. This allows - storing sqlite databases, cache, or template files in a location external to the phar. Copy of the files - would need to be performed in an installation step, phar would not attempt to do this for performance and - security reasons. [Greg] + * implement manual mounting of external phar archives to locations inside a + phar path, $phar->mount('/path/to/external.phar', 'internal/path'); + this would traverse external.phar's manifest, and add each entry as a + virtual entry just like automatic mounting of internal phars + X implement manual mounting of external paths to a directory inside a phar + path. Because the mapping would be to an external directory, write access + would be allowed always. This allows storing sqlite databases, cache, or + template files in a location external to the phar. Copy of the files + would need to be performed in an installation step, phar would not attempt + to do this for performance and security reasons. [Greg] * implement write support for mounted files even if phar.readonly=1 * implement opendir support for mounted paths X make convertToZip/convertToTar rename files [Steph] - X make convertTo*() with full file compression rename to append .gz or .bz2 [Steph] + X make convertTo*() with full file compression rename to append .gz or .bz2 + [Steph] * don't automatically add a stub to .zip or .tar files - * don't allow a stub to be added to a .zip/.tar that does not have ".phar" in the filename - * allow read/write on .tar/.zip files that do not contain a stub or alias file + * don't allow a stub or alias to be added to a .zip/.tar that does not have + ".phar" in the filename (or already have stub/alias) + * allow read/write on .tar/.zip files that do not contain a stub or alias * prevent manual addition of stub via $a['.phar/stub.php'] = '