Gravitask的任务逻辑、解析和格式化功能。

0.1.0 2016-08-31 12:42 UTC

This package is not auto-updated.

Last update: 2024-09-23 14:23:39 UTC


README

Build Status

一个用于处理 TODO 列表项和任务的强大库。

功能

  • 解析和格式化 TaskItem 对象到 JSON 和从 JSON,以及 todo.txt 格式

示例

$parser = new Gravitask\Task\Parser\TodoTxtParser();

$input = "(A) Write the README file";
$task = $parser->parse($input);

$task->getPriority(); // Result: "A"
$task->getTask(); // Result: "Write the README file"

安装

推荐通过 Composer 安装此库

composer require gravitask/task

要求

  • PHP >= 5.4

TaskItem

这个类是“任务对象”,包含有关任务的所有信息,例如其创建日期、优先级、描述等。

常量

方法

setTask($task)

设置要完成的任务的名称/描述。

示例
$taskItem->setTask("Make another coffee");

getTask()

检索任务的名称/描述。

示例
$task->getTask();
// "Make another coffee"

setContexts(array $contexts)

将任务的环境设置为 $contexts 数组中提供的项。

示例
$contexts = ['email', 'computer'];
$task->setContexts($contexts);

addContext($context)

将单个环境项追加到现有的环境数组中。

示例
$contexts = ['email'];
$task->setContexts($contexts);

$task->addContext('computer');

getContexts()

检索任务的环境数组。

示例
$contexts = ['email', 'computer'];
$task->setContexts($contexts);

$task->getContexts();
// ['email', 'computer']

setProjects(array $projects)

将任务的项目设置为 $projects 数组中提供的项。

示例
$projects = ['SecretProject'];
$task->setProjects($projects);

addProject($project)

将单个项目项追加到现有的项目数组中。

示例
$projects = ['SecretProject'];
$task->setProjects($projects);

$task->addProject('Work');

getProjects()

检索任务的项目数组。

示例
$projects = ['SecretProject'];

$task->setProjects($projects);
$task->addProject('Work');

$task->getProjects();
// ['SecretProject', 'Work']

setCreationDate(\DateTime $date)

设置任务的可选创建日期。

参数 $date 是一个 DateTime 对象,设置为所需的日期和时间。

示例
$creationDate = new \DateTime::createFromFormat("Y-m-d", "2016-08-16");
$task->setCreationDate($creaionDate);

getCreationDate()

检索任务的可选创建日期值。

示例
$task->getCreationDate();
// \DateTime object

setCompletionDate(\DateTime $date)

设置任务完成日期。

参数 $date 是一个 DateTime 对象,设置为所需的日期和时间。

$task->setStatus(TaskItem::STATUS_COMPLETED);
$completionDate = new \DateTime::createFromFormat("Y-m-d", "2016-08-20");
$task->setCompletionDate($completionDate);

getCompletionDate()

检索任务完成日期。

示例
$task->setStatus(TaskItem::STATUS_COMPLETED);
$completionDate = new \DateTime::createFromFormat("Y-m-d", "2016-08-20");
$task->setCompletionDate($completionDate);

$task->getCompletionDate()
// \DateTime object

setPriority($priority)

将任务的优先级设置为提供的字母表中的大写单字母。 A 表示最高优先级,而 Z 表示最低。

示例
$task->setPriority("B");

getPriority()

检索以字母表中单一大写字母表示的任务优先级值。

示例
$task->setPriority("F");

$task->getPriority();
// "F"

setStatus($status)

将任务的状态设置为不同的值。

要求:

  • 您应使用以 STATUS_ 开头的 TaskItem 常量提供的值。
示例
$task->setStatus(TaskItem::STATUS_COMPLETED);

getStatus()

检索任务当前的状态。默认情况下,此值将为 TaskItem::STATUS_ACTIVE

示例
$task->setStatus(TaskItem::STATUS_COMPLETED);

$task->getStatus();
// Integer value representation of the status ENUM.

格式化器

必需方法

所有格式化器必须实现 Gravitask\Task\Formatter\FormatterInterface

format(TaskItem $taskItem)

使用首选格式化类(例如 TodoTxtFormatter)格式化提供的 TaskItem

示例
$task->setPriority("A");
$task->setTask("Write example code");

$formatter = new Gravitask\Task\Formatter\TodoTxtFormatter();

$output = $formatter->format($task);
// "(A) Write example code"

解析器

必需方法

所有解析器必须实现 Gravitask\Task\Parser\ParserInterface

parse($input)

解析提供的 $input 变量并返回一个 Gravitask\Task\TaskItem 对象,或者在解析失败时返回 FALSE

示例
$parser = new Gravitask\Task\Parser\TodoTxtParser();

$input = "(A) Write the README file";
$task = $parser->parse($input);

$task->getPriority(); // Result: "A"
$task->getTask(); // Result: "Write the README file"