1.1.1 2014-07-10 17:19 UTC


This is a PHP implementation of the do_by Rubygem ( It's for adding auto-expiring TODO notes to a project.

Build Status Coverage Status Latest Stable Version


use TheUnraveler\TodoBy\Todo;

// Globally enable TODO expiration. If TODO expiration is enabled and your code
// runs into an expired TODO, a TodoExpiredException will be thrown.

// Globally disable TODO expiration. This means that exceptions will not be
// thrown when expired TODOs are encountered. Good for production.

// Creates a new TODO that will expire on the given date.
new Todo('Implement feature X', time()); // Expiration date can be set with a timestamp,
new Todo('Implement feature Y', new \DateTime('now')); // ...a DateTime object,
new Todo('Implement feature Z', '+ 2 weeks'); // ...or anything parsable by new \DateTime.

// Alternatively...
Todo::create('Implement feature AA', '+ 2 weeks');


To run unit tests, first install dependencies (composer install), then run PHPUnit (bin/phpunit).