Tôi hiện đang thử nghiệm với cơ chế tiện ích mở rộng cho khuôn khổ của mình. Mỗi mô-đun bao gồm ít nhất một tệp PHP (xác định một lớp đơn) và biểu định kiểu XSL nhưng có khả năng một số tệp khác có thể được tham gia nên tôi ngay lập tức nghĩ đến việc sử dụng Phars.Tối thiểu PHP Phar stub
Mọi thứ đang phát cùng nhau nhưng tôi nhận thấy nếu tôi không sử dụng createDefaultStub()
và thay vào đó đã tạo Phar như trong đoạn mã sau thì kết quả là một phần tư kích thước - và nhỏ hơn phiên bản đã nén.
$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);
kích thước tập tin Ví dụ:
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)
Các Phar chỉ đơn giản là sẽ được sử dụng để giữ các tập tin mô-đun cụ thể đi kèm với nhau và sẽ được đưa vào một khuôn khổ - chạy độc lập sẽ không thực hiện bất kỳ ý nghĩa trong này bối cảnh. Tôi đoán câu hỏi của tôi là, những gì tôi bỏ lỡ trên - nếu bất cứ điều gì - với việc sử dụng mã sơ khai tối thiểu? Và tại sao phiên bản nén luôn có cùng kích thước?
+1: Rất hữu ích và được viết tốt. –