Instead of returning a command which gets executed and which should pass through / stream its output data to the client, we're just returning an instance of Pluf_HTTP_Response. This is needed, because some SCMs, most noticable monotone, have no locally executable command to provide a snapshot archive (and probably never will for our kind of setup). We therefor added a little BSD-licensed class "ZipArchive" which allows the creation of pkzip-compatible archives on the fly by letting it eat the file contents directly feed from the (remote) stdio instance. Download performance is ok and lies between 15K/s and 110K/s, but at least we do no longer block the browser while we pre-generate the zip file server-side. Thanks to Patrick Georgi for all his work!
		
			
				
	
	
		
			43 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
ZipStream 0.2.2 README
 | 
						|
======================
 | 
						|
 | 
						|
Please see the file COPYING for licensing and warranty information.  The
 | 
						|
latest version of this software is available at the following URL:
 | 
						|
 | 
						|
    http://pablotron.org/software/zipstream-php/
 | 
						|
 | 
						|
Overview
 | 
						|
========
 | 
						|
A fast and simple streaming zip file downloader for PHP.  Here's a
 | 
						|
simple example:
 | 
						|
 | 
						|
    # create a new zipstream object
 | 
						|
    $zip = new ZipStream('example.zip');
 | 
						|
 | 
						|
    # create a file named 'hello.txt' 
 | 
						|
    $zip->add_file('some_image.jpg', 'This is the contents of hello.txt');
 | 
						|
 | 
						|
    # add a file named 'image.jpg' from a local file 'path/to/image.jpg'
 | 
						|
    $zip->add_file_from_path('some_image.jpg', 'path/to/image.jpg');
 | 
						|
 | 
						|
    # finish the zip stream
 | 
						|
    $zip->finish();
 | 
						|
 | 
						|
You can also add comments, modify file timestamps, and customize (or
 | 
						|
disable) the HTTP headers.  See the class file for details.  There are a
 | 
						|
couple of additional examples in the initial release announcement at the
 | 
						|
following URL:
 | 
						|
 | 
						|
    http://pablotron.org/?cid=1535
 | 
						|
 | 
						|
Requirements
 | 
						|
============
 | 
						|
 | 
						|
  * PHP version 5.1.2 or newer (specifically, the hash_init and
 | 
						|
    hash_file functions).
 | 
						|
 | 
						|
About the Author
 | 
						|
================
 | 
						|
Paul Duncan <pabs@pablotron.org>
 | 
						|
http://pablotron.org/
 |