Files
monica/app/Helpers/PostHelper.php

37 lines
841 B
PHP

<?php
namespace App\Helpers;
use App\Models\Post;
use Illuminate\Support\Str;
class PostHelper
{
/**
* Get the statistics of the post.
*/
public static function statistics(Post $post): array
{
$wordCount = 0;
$duration = 0;
$postSections = $post->postSections()
->whereNotNull('content')
->get();
foreach ($postSections as $postSection) {
$wordCount = $wordCount + Str::of($postSection->content)->wordCount();
}
// human read around 200 words per minute
$minutesToRead = round($wordCount / 200);
$duration = (int) max(1, $minutesToRead);
return [
'word_count' => $wordCount,
'time_to_read_in_minute' => $duration,
'view_count' => $post->view_count,
];
}
}