我目前正在試驗我的框架的擴展機制。每個模塊至少包含一個PHP文件(定義一個類)和一個XSL樣式表,但可能涉及其他幾個其他文件,因此我立即想到了使用Phars。最小PHP Phar存根
一切都很好地在一起玩,但我注意到如果我沒有使用createDefaultStub()
而是像下面的代碼片段那樣構造Phar,那麼結果是大小的四分之一 - 並且小於壓縮版本。
$phar = new Phar('Example.phar', 0, 'Example.phar');
$phar->buildFromDirectory(__DIR__ . '/src');
$phar->setStub('<?php __HALT_COMPILER();');
$phar->setSignatureAlgorithm(Phar::SHA256);
$phar->compress(Phar::GZ);
示例文件大小:
8799 14 Dec 09:37 ExampleCog.phar (using createDefaultStub())
2143 14 Dec 10:08 ExampleCog.phar (using __HALT_COMPILER())
3373 14 Dec 10:08 ExampleCog.phar.gz (consistent with either method)
的的Phar只會被用來保持捆綁在一起的模塊特定的文件,將包括在一個框架 - 獨立運行也不會在這任何意義上下文。我想我的問題是,我錯過了什麼 - 如果有的話 - 使用最小的存根代碼?爲什麼壓縮版本的大小始終相同?
+1:非常有幫助,寫得很好。 –