ZipCompressionLevel.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. namespace PhpZip\Constants;
  3. /**
  4. * Compression levels for Deflate and BZIP2.
  5. *
  6. * {@see https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT} Section 4.4.4:
  7. *
  8. * For Methods 8 and 9 - Deflating
  9. * -------------------------------
  10. * Bit 2 Bit 1
  11. * 0 0 Normal (-en) compression option was used.
  12. * 0 1 Maximum (-exx/-ex) compression option was used.
  13. * 1 0 Fast (-ef) compression option was used.
  14. * 1 1 Super Fast (-es) compression option was used.
  15. *
  16. * Different programs encode compression level information in different ways:
  17. *
  18. * Deflate Compress Level pkzip zip 7z, WinRAR WinZip
  19. * ---------------------- ---------------- ------- ---------- ------
  20. * Super Fast compression 1 1
  21. * Fast compression 2 1, 2
  22. * Normal Compression 3 - 8 (5 default) 3 - 7 1 - 9
  23. * Maximum compression 9 8, 9 9
  24. */
  25. interface ZipCompressionLevel
  26. {
  27. /** @var int Compression level for super fast compression. */
  28. const SUPER_FAST = 1;
  29. /** @var int compression level for fast compression */
  30. const FAST = 2;
  31. /** @var int compression level for normal compression */
  32. const NORMAL = 5;
  33. /** @var int compression level for maximum compression */
  34. const MAXIMUM = 9;
  35. /**
  36. * @var int int Minimum compression level
  37. *
  38. * @internal
  39. */
  40. const LEVEL_MIN = self::SUPER_FAST;
  41. /**
  42. * @var int int Maximum compression level
  43. *
  44. * @internal
  45. */
  46. const LEVEL_MAX = self::MAXIMUM;
  47. }