PageRenderTime 70ms CodeModel.GetById 18ms RepoModel.GetById 1ms app.codeStats 0ms

/tests/ZendTest/Loader/_files/_buildPhars.php

https://bitbucket.org/gencer/zf2
PHP | 78 lines | 58 code | 4 blank | 16 comment | 9 complexity | d2824067b08779ecce9e0cd5dd2ac52d MD5 | raw file
  1. <?php
  2. ini_set('phar.readonly', '0');
  3. // Executable
  4. // .phar
  5. buildModulePhar('PharModule');
  6. buildModulePhar('PharModuleMap');
  7. // .phar.gz
  8. buildModulePhar('PharModuleGz', Phar::PHAR, Phar::GZ);
  9. // .phar.bz2
  10. buildModulePhar('PharModuleBz2', Phar::PHAR, Phar::BZ2);
  11. // .phar.tar
  12. buildModulePhar('PharModulePharTar', Phar::TAR, Phar::NONE);
  13. // .phar.tar.gz
  14. buildModulePhar('PharModulePharTarGz', Phar::TAR, Phar::GZ);
  15. // .phar.tar.bz2
  16. buildModulePhar('PharModulePharTarBz2', Phar::TAR, Phar::BZ2);
  17. // .phar.zip
  18. buildModulePhar('PharModulePharZip', Phar::ZIP);
  19. // Non-executable
  20. // .tar
  21. buildModulePhar('PharModuleTar', Phar::TAR, Phar::NONE, false);
  22. // .tar.gz
  23. buildModulePhar('PharModuleTarGz', Phar::TAR, Phar::GZ, false);
  24. // .tar.bz2
  25. buildModulePhar('PharModuleTarBz2', Phar::TAR, Phar::BZ2, false);
  26. // .zip
  27. buildModulePhar('PharModuleZip', Phar::ZIP, Phar::NONE, false);
  28. // Fake Module
  29. buildModulePhar('PharModuleFake', Phar::ZIP, Phar::NONE, false, 'fake');
  30. buildModulePhar('PharModuleNestedFake', Phar::TAR, Phar::GZ, false, 'nestedfake');
  31. // Nested Module
  32. buildModulePhar('PharModuleNested', Phar::TAR, Phar::GZ, false, 'nested');
  33. // Explicitly loaded phar
  34. buildModulePhar('PharModuleExplicit');
  35. function buildModulePhar($name, $format = Phar::PHAR, $compression = Phar::NONE, $executable = true, $mode = 'normal')
  36. {
  37. echo "Building {$name}...\t";
  38. $glob = glob($name.'.*');
  39. if (count($glob) > 0) {
  40. foreach ($glob as $file) {
  41. if (!is_dir($file)) {
  42. unlink($file);
  43. }
  44. }
  45. }
  46. $filename = $name . '.phar';
  47. $phar = new Phar($filename);
  48. switch ($mode) {
  49. case 'normal':
  50. $phar['Module.php'] = "<?php \n\nnamespace {$name};\n\nclass Module\n{}";
  51. break;
  52. case 'fake':
  53. $phar['Module.php'] = '<?php //no class here';
  54. break;
  55. case 'nested':
  56. $phar[$name . '/Module.php'] = "<?php \n\nnamespace {$name};\n\nclass Module\n{}";
  57. break;
  58. case 'nestedfake':
  59. $phar[$name . '/Module.php'] = '<?php // no class here';
  60. break;
  61. }
  62. if (false === $executable) {
  63. $phar->convertToData($format, $compression);
  64. } else {
  65. $phar->setDefaultStub('Module.php', 'Module.php');
  66. if ($format !== Phar::PHAR || $compression !== Phar::NONE) {
  67. $phar->convertToExecutable($format, $compression);
  68. }
  69. }
  70. if ($format !== Phar::PHAR || $compression !== Phar::NONE) {
  71. unlink($filename);
  72. }
  73. echo "Done!\n";
  74. }