<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
cyrildewit / laravel-page-visits-counter example snippets
// Return total view count
views($post)->count();
// Return total unique view count since 20 February 2017
views($post)->unique()->period(Period::since('2017-02-20'))->count();
// Record a view
views($post)->record();
use Illuminate\Database\Eloquent\Model;
use CyrildeWit\EloquentViewable\InteractsWithViews;
use CyrildeWit\EloquentViewable\Contracts\Viewable;
class Post extends Model implements Viewable
{
use InteractsWithViews;
// ...
}
views($post)->record();
// PostController.php
public function show(Post $post)
{
views($post)->record();
return view('post.show', compact('post'));
}
views($post)->queue()->record();
'queue' => [
'enabled' => true, // queue every recorded view
'connection' => null, // null uses the default queue connection
'queue' => null, // null uses the connection's default queue
],
use CyrildeWit\EloquentViewable\Support\Period;
// Example: get view count from 2017 up to 2018
views($post)
->period(Period::create('2017', '2018'))
->count();
// Cache for 3600 seconds
views($post)->remember(3600)->count();
// Cache until the defined DateTime
views($post)->remember(now()->addWeeks(2))->count();
// Cache forever
views($post)->remember()->count();
use CyrildeWit\EloquentViewable\Contracts\CreateView as CreateViewContract;
use CyrildeWit\EloquentViewable\Contracts\View as ViewContract;
use CyrildeWit\EloquentViewable\PendingView;
final class CreateView implements CreateViewContract
{
public function handle(PendingView $pending): ViewContract
{
// ...
}
}