현재 프레임 워크의 확장 메커니즘을 실험하고 있습니다. 각 모듈은 적어도 하나의 PHP 파일 (단일 클래스 정의)과 XSL 스타일 시트로 구성되어 있지만 잠재적으로 다른 여러 파일이 포함될 수 있으므로 Phars를 사용하는 것을 즉시 고려했습니다.최소 PHP Phar 스텁
모든 것이 잘 어울리고 있지만 createDefaultStub()
을 사용하지 않고 다음 스 니펫에서와 같이 Phar를 구성하면 결과가 크기의 4 분의 1이며 압축 된 버전보다 작습니다.
$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 : 매우 유용하고 잘 쓰여졌습니다. –