Return to TODO CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / phar |
1.1 ! misho 1: Version 1.0.0 ! 2: ! 3: X make permissions in the lowest bits of flags to simplify using them [Greg] ! 4: X implement ini handler for phar.readonly and phar.require_hash that allows ! 5: enabling it on PHP_INI_ALL if it is disabled in the system, but does not ! 6: allow disabling it if it is enabled in the system [Greg] ! 7: X implement reading in metadata in manifest as <len32><metadata...> [Marcus] ! 8: X implement writing out of metadata to new manifest [Marcus] ! 9: X if SPL is disabled, enable only static methods of class Phar and disable ! 10: class PharFileInfo completely [Marcus] ! 11: X implement in-phar locking, so that a file that is opened for reading can't ! 12: have a handle opened for writing [Marcus/Greg] ! 13: X docs on file format/manifest description [Greg] ! 14: X docs on uses [Greg] ! 15: X stream context for specifying compression of a file [Marcus] ! 16: X stream context for specifying meta-data [Greg] ! 17: X Phar->begin()/Phar->commit() for specifying a new stub to the phar, ! 18: and deferring flush until all modifications are complete [Greg] ! 19: X Phar->getStub() for retrieving the stub of the phar [Marcus] ! 20: X add setUncompressed(), setCompressedGZ() and setCompressedBZ2() to ! 21: PharFileInfo class [Greg] ! 22: X add uncompressAllFiles(), compressAllFilesGZ() and compressAllFilesBZ2() ! 23: to Phar class [Greg] ! 24: X add PharFileInfo::setMetaData($metadata) [Marcus] ! 25: X add PharFileInfo::getMetaData() [Marcus] ! 26: X always throw exceptions from the Phar object, and E_RECOVERABLE_ERROR from ! 27: streams interface [Greg] ! 28: X Phar archive metadata Phar::setMetaData($metadata) Phar::getMetaData() ! 29: [Greg] ! 30: X support rename() in stream wrapper [Greg] ! 31: X update docs to reflect changes in error handling [Greg] ! 32: X fix 011.phpt, 029.phpt for uncaught exceptions causing bad cleanup ! 33: [Marcus/Greg] ! 34: ! 35: Version 1.1.0 ! 36: ! 37: X Ability to connect a phar file 'phar://whatever' to a directory. That way ! 38: all access to that phar archive are directed to the extracted directory. ! 39: This allows to have the installed files and the archive keep the same ! 40: includes. [Marcus] ! 41: X add SHA-2 (256, 512) support [Marcus] ! 42: X setSignatureAlgorithm() and Phar::MD5 Phar::SHA1 Phar::SHA256 Phar::SHA512 ! 43: Phar::PGP to choose the kind of signature to use (PGP falls back to SHA1) ! 44: [Greg] ! 45: ! 46: Version 1.2.0 ! 47: ! 48: X add PharFileInfo::hasMetadata(), PharFileInfo::delMetadata() [Marcus] ! 49: X add Phar::hasMetadata(), Phar::delMetadata() [Marcus] ! 50: X fix Phar::CanWrite() [Marcus] ! 51: X add preliminary phar command (phar.php) [Marcus] ! 52: X add phar command (phar.phar) [Marcus] ! 53: X list all available compression methods using ! 54: Phar::getSupportedCompression() [Marcus] ! 55: X Remove RINIT [Marcus] ! 56: ! 57: Version 1.2.1 ! 58: ! 59: X Add Phar::getAlias() [Marcus] ! 60: X Add Phar::setAlias() [Greg] ! 61: X Make -a optional in pack subcommand of phar.phar [Marcus] ! 62: X Make Phar::loadPhar() and Phar::mapPhar() ignore extracted archives ! 63: ! 64: Version 2.0.0 ! 65: ! 66: X implement webPhar() rewrite as a callback that returns FALSE to deny ! 67: access, or a string representing a file within the archive to access. If ! 68: unknown, the callback should return the original request uri [Greg] ! 69: X rework filename detection so that alias is always checked first [Greg] ! 70: X make aliases containing '/' or '\' invalid [Greg] ! 71: X implement manual mounting of external phar archives to locations inside a ! 72: phar path, $phar->mount('/path/to/external.phar', 'internal/path'); ! 73: this would traverse external.phar's manifest, and add each entry as a ! 74: virtual entry just like automatic mounting of internal phars [Greg] ! 75: X implement manual mounting of external paths to a directory inside a phar ! 76: path. Because the mapping would be to an external directory, write access ! 77: would be allowed always. This allows storing sqlite databases, cache, or ! 78: template files in a location external to the phar. Copy of the files ! 79: would need to be performed in an installation step, phar would not attempt ! 80: to do this for performance and security reasons. [Greg] ! 81: X implement opendir support for mounted paths [Greg] ! 82: X make convertToZip/convertToTar rename files [Steph] ! 83: X make convertTo*() with full file compression rename to append .gz or .bz2 ! 84: [Steph] ! 85: X don't automatically add a stub to .zip or .tar files [Steph] ! 86: X don't allow a stub or alias to be added to a .zip/.tar that does not have ! 87: ".phar" in the filename (or already have stub/alias) [Steph] ! 88: X allow read/write on .tar/.zip files that do not contain a stub or alias [Steph/Greg] ! 89: X prevent manual addition of stub via $a['.phar/stub.php'] = '<?php my stub'; [Greg] ! 90: X investigate potential collision between SPL's DirectoryIterator flags and ! 91: those in phar_archive_data [Steph] ! 92: X compression should work for non-phar archives [Steph] ! 93: X implement initial support for simple zip/tar archives (PharData) [Steph] ! 94: X make createDefaultStub() setDefaultStub() and have it file format-specific ! 95: [Steph] ! 96: X convertTo*() should always use the default stub [Steph] ! 97: X ability to store empty directories [Greg] ! 98: X tar support [Greg] ! 99: X zip support [Greg] ! 100: X Phar::copy($from, $to); [Greg] ! 101: X Phar::delete($what) [Greg] ! 102: X Phar::buildFromIterator(Iterator $it[, string $base_directory]) [Greg] ! 103: X Layout: Option to compress all content rather than single files. (tar/phar ! 104: only) [Greg] ! 105: X clean crap paths like phar://blah.phar/file//../to\\here.php [Greg] ! 106: ! 107: Version 2.1.0 ! 108: * implement write support for mounted files even if phar.readonly=1 ! 109: * implement automatic "mounting" of internal phar archives so that ! 110: phar:///path/to/archive.phar/internal.phar/file opens internal.phar and ! 111: maps its manifest inside archive.phar. The manifest entry inside ! 112: archive.phar would be named "internal.phar/file". Write access to internal ! 113: files inside an internal phar would be denied, as the entire archive must ! 114: be added or removed at the same time.