PHPackages                             davidbadura/taskwarrior - 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. davidbadura/taskwarrior

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

davidbadura/taskwarrior
=======================

a php lib for taskwarrior

3.0.1(9y ago)172174[5 PRs](https://github.com/DavidBadura/Taskwarrior/pulls)MITPHPPHP &gt;=5.5

Since Feb 8Pushed 3y ago2 watchersCompare

[ Source](https://github.com/DavidBadura/Taskwarrior)[ Packagist](https://packagist.org/packages/davidbadura/taskwarrior)[ RSS](/packages/davidbadura-taskwarrior/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (11)Versions (21)Used By (0)

Taskwarrior PHP lib
===================

[](#taskwarrior-php-lib)

used by [doThings](https://github.com/DavidBadura/doThings) - a Taskwarrior web-ui.

[![Build Status](https://camo.githubusercontent.com/12116260a98dee6ab38f6eaf22fa53528154a3318f53d5bfcbe1adecc71c19f1/68747470733a2f2f7472617669732d63692e6f72672f44617669644261647572612f5461736b77617272696f722e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/DavidBadura/Taskwarrior)

[![WOW](https://camo.githubusercontent.com/8484d74822ae6ca87f3a289bbd87a650c81b1e544c6a1d93a2c4f1e8858df7cd/687474703a2f2f692e696d6775722e636f6d2f6d76535168304d2e676966)](https://camo.githubusercontent.com/8484d74822ae6ca87f3a289bbd87a650c81b1e544c6a1d93a2c4f1e8858df7cd/687474703a2f2f692e696d6775722e636f6d2f6d76535168304d2e676966)

Install
-------

[](#install)

```
composer require 'davidbadura/taskwarrior'
```

Unfortunately, the annotation reader is not automatically registered on composer. So you should add following line if you have `[Semantical Error] The annotation "@JMS\Serializer\Annotation\Type" in property [...] does not exist, or could not be auto-loaded.` exception:

```
\Doctrine\Common\Annotations\AnnotationRegistry::registerLoader('class_exists');
```

Requirements
------------

[](#requirements)

Taskwarrior changes its behavior by patch level updates and it is very difficult to support all versions. The current supported versions are:

PHP LibTaskwarriorPHP Version2.x&gt;=2.4.3&gt;=5.43.x&gt;=2.5.0&gt;=5.5Usage
-----

[](#usage)

```
use DavidBadura\Taskwarrior\TaskManager;
use DavidBadura\Taskwarrior\Task;
use DavidBadura\Taskwarrior\Recurring;
use DavidBadura\Taskwarrior\Annotation;

$tm = TaskManager::create();

$task = new Task();
$task->setDescription('program this lib');
$task->setProject('hobby');
$task->setDue('tomorrow');
$task->setPriority(Task::PRIORITY_HIGH);
$task->addTag('next');
$task->setRecurring(Recurring::DAILY);
$task->addAnnotation(new Annotation("and add many features"));

$tm->save($task);

$tasks = $tm->filterPending('project:hobby'); // one task

$tm->done($task);

$tasks = $tm->filterPending('project:hobby'); // empty
$tasks = $tm->filter('project:hobby'); // one task

$tasks = $tm->filterByReport('waiting'); // and sorting
```

API
---

[](#api)

### Task

[](#task)

attrwriteabletypeuuidfalsestringdescriptiontruestringprioritytruestringprojecttruestringduetrueDateTimewaittrueDateTimetagstruestring\[\]annotationstrueAnnotation\[\]urgencyfalsefloatentryfalseDateTimestartfalseDateTimerecurtrueRecurringuntitrueDateTimemodifiedfalseDateTimeendfalseDateTimestatusfalsestringExample:

```
$task = new Task();
$task->setDescription('program this lib');
$task->setProject('hobby');
$task->setDue('tomorrow');
$task->setPriority(Task::PRIORITY_HIGH);
$task->addTag('next');
$task->setRecurring(Recurring::DAILY);
```

### Taskwarrior

[](#taskwarrior)

create TaskManager:

```
$tm = TaskManager::create();
```

save a task:

```
$task = new Task();
$task->setDescription('foo');
$tm->save($task);
```

find a task:

```
$task = $tm->find('b1d46c75-63cc-4753-a20f-a0b376f1ead0');
```

filter tasks:

```
$tasks = $tm->filter('status:pending');
$tasks = $tm->filter('status:pending +home');
$tasks = $tm->filter('status:pending and +home');
$tasks = $tm->filter(['status:pending', '+home']);
```

filter pending tasks:

```
$tasks = $tm->filterPending('+home');
$tasks = $tm->filterPending('project:hobby +home');
$tasks = $tm->filterPending('project:hobby and +home');
$tasks = $tm->filterPending(['project:hobby', '+home']);
```

count tasks:

```
$tasks = $tm->count('status:pending');
$tasks = $tm->count('status:pending +home');
$tasks = $tm->count('status:pending and +home');
$tasks = $tm->count(['status:pending', '+home']);
```

delete task:

```
$tm->delete($task);
```

done task:

```
$tm->done($task);
```

start task:

```
$tm->start($task);
```

stop task:

```
$tm->stop($task);
```

reopen task:

```
$tm->reopen($task);
```

dependencies:

```
$task1 = new Task();
$task1->setDescription('a');

$task2 = new Task();
$task2->setDescription('b');

$task1->addDependency($task2);

// the order is important!
$tm->save($task2);
$tm->save($task1);

$tm->clear(); // clear object cache

$task1 = $tm->find('uuid-from-task1');
$task2 = $task1->getDependencies()[0];
echo $task2->getDesciption(); // "b" setDescription('a');
$task->addAnnotation(new Annotation("foobar"));

$tm->save($task);

$tm->clear(); // clear object cache

$task = $tm->find('uuid-from-task1');
$annotation = $task->getAnnotations()[0];
echo $annotation->getDesciption(); // "foobar"
```

### QueryBuilder

[](#querybuilder)

example:

```
$tasks = $taskManager->createQueryBuilder()
    ->whereProject('hobby')
    ->orderBy(['entry' => 'DESC'])
    ->getResult()
```

###  Health Score

33

—

LowBetter than 75% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity21

Limited adoption so far

Community13

Small or concentrated contributor base

Maturity67

Established project with proven stability

 Bus Factor1

Top contributor holds 98.1% 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

Every ~32 days

Recently: every ~87 days

Total

17

Last Release

3596d ago

Major Versions

1.2.x-dev → 2.0.0-alpha2015-05-15

2.1.x-dev → 3.0.02016-03-12

PHP version history (2 changes)1.0.0PHP &gt;=5.4

3.0.0PHP &gt;=5.5

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/470138?v=4)[David Badura](/maintainers/DavidBadura)[@DavidBadura](https://github.com/DavidBadura)

---

Top Contributors

[![DavidBadura](https://avatars.githubusercontent.com/u/470138?v=4)](https://github.com/DavidBadura "DavidBadura (153 commits)")[![tolry](https://avatars.githubusercontent.com/u/259744?v=4)](https://github.com/tolry "tolry (2 commits)")[![larsborn](https://avatars.githubusercontent.com/u/1826897?v=4)](https://github.com/larsborn "larsborn (1 commits)")

---

Tags

phptaskwarriortodotasktaskwarriorGTD

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/davidbadura-taskwarrior/health.svg)

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

###  Alternatives

[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.4k5.6M651](/packages/sylius-sylius)[sulu/sulu

Core framework that implements the functionality of the Sulu content management system

1.3k1.3M152](/packages/sulu-sulu)[symplify/monorepo-builder

Not only Composer tools to build a Monorepo.

5205.3M82](/packages/symplify-monorepo-builder)[civicrm/civicrm-core

Open source constituent relationship management for non-profits, NGOs and advocacy organizations.

728272.9k20](/packages/civicrm-civicrm-core)[ec-cube/ec-cube

EC-CUBE EC open platform.

78527.0k1](/packages/ec-cube-ec-cube)[shlinkio/shlink

A self-hosted and PHP-based URL shortener application with CLI and REST interfaces

4.8k4.3k](/packages/shlinkio-shlink)

PHPackages © 2026

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