PHPackages                             phpoffice/phpproject - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. phpoffice/phpproject

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

phpoffice/phpproject
====================

PHPProject - Read, Create and Write Project Management documents in PHP

0.2.0(12y ago)21018.6k↓45.3%102[2 issues](https://github.com/PHPOffice/PhpProject/issues)[1 PRs](https://github.com/PHPOffice/PhpProject/pulls)LGPLPHPPHP &gt;=5.3.0CI passing

Since Aug 13Pushed 1mo ago28 watchersCompare

[ Source](https://github.com/PHPOffice/PhpProject)[ Packagist](https://packagist.org/packages/phpoffice/phpproject)[ Docs](http://phpoffice.github.io)[ RSS](/packages/phpoffice-phpproject/feed)WikiDiscussions develop Synced 2w ago

READMEChangelog (2)Dependencies (6)Versions (8)Used By (0)

PhpProject
==========

[](#phpproject)

[![Latest Stable Version](https://camo.githubusercontent.com/6793392bfb4358bcecfb2c6a2b0e83673adc49f7346eac4c6f3f6a24baad18f8/68747470733a2f2f706f7365722e707567782e6f72672f7068706f66666963652f70687070726f6a6563742f762f737461626c652e706e67)](https://packagist.org/packages/phpoffice/phpproject)[![Coverage Status](https://camo.githubusercontent.com/cfa6db4245b94dc7ab0e7013b029df21d793f687ee6938f719a2ca36bf9cb62e/68747470733a2f2f636f766572616c6c732e696f2f7265706f732f6769746875622f5048504f66666963652f50687050726f6a6563742f62616467652e7376673f6272616e63683d646576656c6f70)](https://coveralls.io/github/PHPOffice/PhpProject?branch=develop)[![Total Downloads](https://camo.githubusercontent.com/536ac40233842c3e66e50eaf2dbc74c67dfb5dd3d6962bb006f4859d97e63467/68747470733a2f2f706f7365722e707567782e6f72672f7068706f66666963652f70687070726f6a6563742f646f776e6c6f6164732e706e67)](https://packagist.org/packages/phpoffice/phpproject)[![License](https://camo.githubusercontent.com/4d2c6634bb0fd5a2564f542a4c276fb2b0bd14a38c8c1fed753971e0c533a304/68747470733a2f2f706f7365722e707567782e6f72672f7068706f66666963652f70687070726f6a6563742f6c6963656e73652e706e67)](https://packagist.org/packages/phpoffice/phpproject)

PhpProject is a library written in pure PHP that provides a set of classes to write to different project management file formats, i.e. Microsoft [MSProjectExchange](http://support.microsoft.com/kb/270139) (MPX) or [GanttProject](http://www.ganttproject.biz) (GAN). PhpProject is an open source project licensed under the terms of [LGPL version 3](https://github.com/PHPOffice/PhpProject/blob/develop/COPYING.LESSER). PhpProject is aimed to be a high quality software product by incorporating continuous integration and [unit testing](https://phpoffice.github.io/PhpProject/coverage/). You can learn more about PhpProject by reading the [Developers' Documentation](https://phpoffice.github.io/PhpProject/) and the [API Documentation](https://phpoffice.github.io/PhpProject/docs/).

Read more about PhpProject:

- [Features](#features)
- [Requirements](#requirements)
- [Installation](#installation)
- [Getting started](#getting-started)
- [Known issues](#known-issues)
- [Contributing](#contributing)
- [Developers' Documentation](https://phpoffice.github.io/PhpProject/)
- [API Documentation](https://phpoffice.github.io/PhpProject/docs/)

### Features

[](#features)

- Create an in-memory project management representation
- Set file meta data (author, title, description, etc)
- Add resources from scratch or from existing one
- Add tasks from scratch or from existing one
- Output to different file formats: MSProjectExchange (.mpx), GanttProject (.gan)
- ... and lots of other things!

### Requirements

[](#requirements)

PhpProject requires the following:

- PHP 7.3+
- [XML Parser extension](http://www.php.net/manual/en/xml.installation.php)

### Installation

[](#installation)

It is recommended that you install the PhpProject library [through composer](http://getcomposer.org/). To do so, add the following lines to your `composer.json`.

```
{
    "require": {
       "phpoffice/phpproject": "dev-master"
    }
}
```

Getting started
---------------

[](#getting-started)

The following is a basic usage example of the PhpProject library.

```
require_once 'vendor/autoload.php';

$objPHPProject = new PhpProject();

// Create resource
$objRes1 = $objPHPProject->createResource();
$objRes1->setTitle('UserBoy');

// Create a task
$objTask1 = $objPHPProject->createTask();
$objTask1->setName('Start of the project');
$objTask1->setStartDate('02-01-2012');
$objTask1->setEndDate('03-01-2012');
$objTask1->setProgress(0.5);
$objTask1->addResource($objRes1);

$oWriterGAN = IOFactory::createWriter($objPHPPowerPoint, 'GanttProject');
$oWriterGAN->save(__DIR__ . "/sample.gan");
```

More examples are provided in the [samples folder](samples/). You can also read the [Developers' Documentation](https://phpoffice.github.io/PhpProject/) and the [API Documentation](https://phpoffice.github.io/PhpProject/docs/) for more details.

Contributing
------------

[](#contributing)

We welcome everyone to contribute to PhpProject. Below are some of the things that you can do to contribute:

- Read [our contributing guide](https://github.com/PHPOffice/PhpProject/blob/master/CONTRIBUTING.md)
- [Fork us](https://github.com/PHPOffice/PhpProject/fork) and [request a pull](https://github.com/PHPOffice/PhpProject/pulls) to the [develop](https://github.com/PHPOffice/PhpProject/tree/develop) branch
- Submit [bug reports or feature requests](https://github.com/PHPOffice/PhpProject/issues) to GitHub
- Follow [@PHPOffice](https://twitter.com/PHPOffice) on Twitter

###  Health Score

48

—

FairBetter than 94% of packages

Maintenance59

Moderate activity, may be stable

Popularity46

Moderate usage in the ecosystem

Community25

Small or concentrated contributor base

Maturity53

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 68.8% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

4389d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/792895a1976f2be3789d45a658de84d94a901d1137b4417b27840ccaa0dba2e3?d=identicon)[Progi1984](/maintainers/Progi1984)

![](https://www.gravatar.com/avatar/2b8457fa3227a7e8e38f0121f1fe254ec965133df93ae5ea8352c757adb98283?d=identicon)[PHPOffice](/maintainers/PHPOffice)

---

Top Contributors

[![Progi1984](https://avatars.githubusercontent.com/u/1533248?v=4)](https://github.com/Progi1984 "Progi1984 (77 commits)")[![slayerfx](https://avatars.githubusercontent.com/u/88725171?v=4)](https://github.com/slayerfx "slayerfx (30 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (4 commits)")[![arzurchris](https://avatars.githubusercontent.com/u/25454844?v=4)](https://github.com/arzurchris "arzurchris (1 commits)")

---

Tags

ganmpxmsprojectofficephpprojectphpprojectmpxGanttProjectgan

###  Code Quality

TestsPHPUnit

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/phpoffice-phpproject/health.svg)

```
[![Health](https://phpackages.com/badges/phpoffice-phpproject/health.svg)](https://phpackages.com/packages/phpoffice-phpproject)
```

###  Alternatives

[imanghafoori/laravel-anypass

A minimal yet powerful package to help you in development.

21524.3k](/packages/imanghafoori-laravel-anypass)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
