gravitask / task
Gravitask的任务逻辑、解析和格式化功能。
Requires
- php: >=5.4
Requires (Dev)
- phpunit/phpunit: ~4
This package is not auto-updated.
Last update: 2024-09-23 14:23:39 UTC
README
一个用于处理 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"