Skip to content

devdch/fsrs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PHP-FSRS

Free Spaced Repetition Scheduler (FSRS) algorithm implementation in PHP

More info about FSRS here: https://github.com/open-spaced-repetition/awesome-fsrs

Example:

use Fsrs\Config\Config;
use Fsrs\DTO\Card;
use Fsrs\Enum\RatingEnum;
use Fsrs\Enum\StateEnum;
use Fsrs\Scheduler;

// All params are optional (default config will be used).
$scheduler = new Scheduler(config: new Config(
    weights: [
        0.40255,
        1.18385,
        3.173,
        15.69105,
        7.1949,
        0.5345,
        1.4604,
        0.0046,
        1.54575,
        0.1192,
        1.01925,
        1.9395,
        0.11,
        0.29605,
        2.2698,
        0.2315,
        2.9898,
        0.51655,
        0.6621,
    ],
    desiredRetention: 0.9,
    learningSteps: [60, 600,],
    relearningSteps: [600,],
    maximumInterval: 36500,
    enableFuzzing: true,
));

$card = new Card();

$card = $scheduler->reviewCard(
    card: $card,
    rating: RatingEnum::Good,
    reviewDatetime: new DateTimeImmutable('now', Config::getTimezone())
)->card;

About

PHP FSRS implementation

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages