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(11y ago)20718.3k↓45.8%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 3d 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 3d 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

49

—

FairBetter than 94% of packages

Maintenance64

Regular maintenance activity

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

4343d 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.

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

PHPackages © 2026

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