2014-07-22 14 views
5

Tôi biết cách chuyển đổi tệp php thành tệp phar.Chuyển đổi ứng dụng web (ZF2) thành PHAR

$phar = new PHAR('app.phar'); 
$phar->addFile('file1.php'); 
$phar->addFile('file2.php'); 

Tôi nghĩ nó chỉ hữu ích khi chuyển POPO sang PHAR.

Câu hỏi của tôi

Có thể chuyển đổi toàn bộ Zend framework 2 ứng dụng web để Phar nộp? nếu có, thì thế nào?

(hoặc)

Làm thế nào để đóng gói ứng dụng web Zend framework2 vào gói? (Trừ .zpk (zend tập tin gói studio) định dạng tập tin)


Cập nhật: tạo Phar từ toàn bộ ứng dụng

tạo-phar.php

$basePath = /path/to/; 
$path = /path/to/application; 
$phar = new Phar ('project.phar');  
$phar->buildFromIterator(new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path)), $basePath); 
$phar->setStub("<?php 
    Phar::webPhar('project', 'public/index.php'); 
     include 'phar://project/public/index.php'; 
     __HALT_COMPILER(); 
    ?>"); 

index .php

<?php 
include 'project.phar'; 
?> 

Câu hỏi:

Khi tôi chạy index.php nó không chuyển hướng đến thực tế công cộng/index.php nộp thay vào đó nó cho thấy trang trống trên trình duyệt. Làm thế nào tôi có thể giải quyết vấn đề này?

Cảm ơn trước

+0

Hãy xem [tại đây] (http://stackoverflow.com/questions/15750913/generating-a-phar-for-a-simple-application). Ngoài ra IMHO đóng gói toàn bộ ứng dụng không phải là một ý tưởng tốt. Nắm đấm, trong thời gian của nhà soạn nhạc nó sẽ khó phát triển hơn, và thứ hai - theo như tôi biết 'APC' không hỗ trợ 'phar', vì vậy bạn sẽ đạt được nút cổ chai hiệu suất tuyệt vời. – ex3v

+0

Tôi thích câu hỏi của bạn, điều này sẽ hữu ích cho các nhà phát triển muốn ẩn mã của nó để phân phối nó cho các công ty. – peterpeterson

+1

@BrunoQuintanaFleitas [Không thực sự] (http://php.net//manual/pl/phar.extractto.php) – ex3v

Trả lời

4

tôi triển khai phorkie như một tập tin .phar.

Có một số điều cần xem xét:

  1. Gói lên tất cả các file trong .phar - php và tệp nội dung tĩnh (js, css, png, jpg), quá. I use phing để thực hiện điều đó. Đừng quên phụ thuộc.
  2. Bạn cần một cuống tập chạy Phar::webPhar() mà sẽ chăm sóc của gửi đi HTTP Headers
  3. Viết .htaccess viết lại quy tắc riêng của thông dịch viên của bạn, bởi vì Phar::webPhar() không làm đẹp-con đường giải quyết một mình. I did that already.
  4. tay chăm sóc gửi ra tiêu đề bộ nhớ đệm cho các tập tin tĩnh
  5. Hy vọng rằng bạn (hoặc người dùng của bạn) không chạy vào một trong những Phar::webPhar lỗi:
    1. Symlinked files
    2. No HEAD, PUT or DELETE support
    3. Redirection loop with FPM (đã được sửa trong git)
  6. Hy vọng rằng người dùng của bạn web server handles .phar files (nó sẽ không; neither Debiannor Fedora tàu cấu hình)
  7. Hope rằng máy chủ web của người dùng được cấu hình đúng để xử lý .phar file với PATH_INFO nối (/path/to/file.phar/foo/bar.png), giống như trong http://p.cweiske.de/122

Bắt phorkie chạy từ .phar đưa tôi vào buổi tối trong hai tuần. Bây giờ nó về cơ bản hoạt động nó vẫn không phải là một giải pháp drop-phar-and-play, bởi vì cấu hình mặc định của máy chủ web chỉ không chơi tốt đẹp với .phar.

+0

Xin chào cweiske, cảm ơn phản hồi của bạn. và hy vọng nó có thể giải quyết vấn đề của tôi. –

+0

Tôi sẽ chấp nhận câu trả lời của bạn khi tôi sẽ tạo tệp phg.php zf2 của riêng tôi cho câu trả lời của bạn –

+0

Xin chào @cweiske, bạn có thể giúp tôi thiết lập sơ khai cho tệp create-phar.php của mình không? và tôi đã cập nhật câu hỏi của mình, hãy nhìn vào đó –

Các vấn đề liên quan