This package is abandoned and no longer maintained. No replacement package was suggested.

A PHP utility to estimate reading time.

0.2.2 2016-03-10 08:08 UTC

This package is not auto-updated.

Last update: 2020-01-20 04:09:23 UTC


Bookworm estimates how much time is needed to read a certain piece of text.


Currently, the only reliable way (and recommended way) to install Bookworm is by using PHP's package manager Composer.

Using Composer

    "require": {
        "worddrop/bookworm": "dev-master"


use Bookworm\Bookworm;

$text = '...';
$time = Bookworm::estimate($text);
echo $time; // 5 minutes


Bookworm::estimate(string $text, string|array|bool $units = [ ' minute', ' minutes' ]);


  • $text The piece of text which the estimation should be based upon.
  • $units = [ ' minute', ' minutes' ] Optional. Set it to false, to return just the number of minutes as an integer. If you provide a string, like m it will be used for singular and plural and produce 5m. If you provide an array with two values, the first will be used for singular, the second for plural. [ ' minute', ' minutes' ] (not included leading whitespace) will produce 5 minutes.

Returns int or string


You can configure Bookworm to react other than how it's shipped. You can change the average words per minute & the duration a user needs to look at an image. If you do not want images to factor into the reading time estimate, just set it to 0.

use Bookworm\Bookworm;

    'wordsPerMinute' => 200,
    'codewordsPerMinute' => 200,
    'secondsPerImage' => 12

wordsPerMinute The average amount of words a user will read per minute (default 200).

codewordsPerMinute The average amount of words in a code block, a user will read per minute (default 200).

secondsPerImage The average amount of seconds a user will spent looking at an image (default 12).


This project is licensed under MIT license. For the full copyright and license information, please view the LICENSE file that was distributed with this source code.


You may contribute in any way you want, as long as you agree that your code will be licensed under the same license as the project itself.

Please make sure to run the tests before committing.

$ composer test