Phpzim

The phpzim project is a project to create a new PHP binding to the zimlib ; allowing to easily read and write ZIM files in this language. This project includes the creation of the necessary code, documentation and demonstration PHP script. phpzim will be based on the zimlib like pyzim, the Python extension used to create ZIM file at PediaPress (see The Wikipedia Book creator).

Properties

 * Legal name of organization or individual requesting this grant: Emmanuel Engelhart
 * Project contact name: Emmanuel Engelhart
 * Project contact username or email: Kelson
 * Project contact title (position): Project manager
 * Project leader name: Emmanuel Engelhart
 * Project leader username or email: Kelson
 * Project leader title (position), if any: Project manager
 * Full project name: phpzim
 * Provisional target start date:
 * Provisional completion date:

Goals
The goal is mainly about the creation of a ZIM PHP extension called phpzim. phpzim is an extension allowing PHP developers to read/write ZIM files.

Deliverables:
 * Create a tgz of the zimlib with only the necessary for phpzim
 * Create the code (c/c++) of the phpzim PHP extension using the GNU tools for the compilation
 * phpzim should offer an easy API to read/write ZIM files with all the necessary options
 * Code of phpzim should be online developed on openZIM repository
 * At the end a tgz directly compilable of phpzim should be provided with a documentation about how co compile/install/configure it with Apache.
 * Code usage should be documented and documentation should be automatically generated using doxygen or similar
 * Rewrite and improve buildZimFileFromDirectory.pl in PHP: buildZimFileFromDirectory.php console script (dealing directly with the zimlib)

Activities
This project would be split in 2 work-packages:
 * Everything regarding the phpzim PHP extension (3000 CHF)
 * Everything regarding the buildZIMFileFromDirectory.php (1000 CHF)

Resources

 * 160 hours of development
 * 20 hours of volunteer time for the project management
 * 3 months of time
 * 4.000 CHF for the development work

Fit strategy and user demand
Increase reach is currently the first Wikimedia strategic goal. Offline is an essential part of the Wikimedia strategy and Kiwix, as official Wikimedia offline reader, is a master piece of this strategy.

We have now a good Desktop software, we need to increase the offer of ZIM files, this project is one essential stone in that way.

Benefits

 * Mandatory to integration the ZIM generation directly in DumpHTML (See the global Mediawiki DumpHTML extension improvement project)
 * Speed-up the ZIM creation (avoiding using a postgresql database and the zimwriter binary) – directly usable on the new created Kiwix zimfarm (see ZIM Autobuild project).
 * Essential for many CMS coded in PHP to generate also ZIM files (we hope to see also other project to release there own ZIM files).
 * Allow in the future any Mediawiki Administrator to export his content to ZIM – until now, they contact me (Kelson)
 * Collaboration with Wikimédia France which already granted the rest of the project.

People
This project would be led by Kelson and executed by third part developer(s).