PHP code example of pouya1364 / probabilistic-laravel

1. Go to this page and download the library: Download pouya1364/probabilistic-laravel library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

pouya1364 / probabilistic-laravel example snippets


// config/probabilistic.php

return [
    'bloom_filters' => [
        'emails_seen' => ['expected_items' => 100000, 'false_positive_rate' => 0.01],
    ],
    'counting_bloom_filters' => [
        'active_sessions' => ['expected_items' => 50000, 'false_positive_rate' => 0.01],
    ],
    'cuckoo_filters' => [
        'rate_limited_ips' => ['expected_items' => 100000],
    ],
    'count_min_sketches' => [
        'page_view_counts' => ['width' => 2000, 'depth' => 5],
    ],
    'hyperloglogs' => [
        'unique_visitors' => ['precision' => 14],
    ],
];

use ProbabilisticLaravel\Facades\Probabilistic;

$emails = Probabilistic::bloomFilter('emails_seen');
$emails->add('[email protected]');

if ($emails->mightContain('[email protected]')) {
    // probably seen before
}

Probabilistic::hyperLogLog('unique_visitors')->add($visitorId);
$estimate = Probabilistic::hyperLogLog('unique_visitors')->estimate();

Probabilistic::bloomFilter('emails_seen');
Probabilistic::countingBloomFilter('active_sessions');
Probabilistic::cuckooFilter('rate_limited_ips');
Probabilistic::countMinSketch('page_view_counts');
Probabilistic::hyperLogLog('unique_visitors');

// Container
$manager = app('probabilistic');
$filter = $manager->bloomFilter('emails_seen');

use ProbabilisticLaravel\ProbabilisticManager;

final class SignupController
{
    public function __construct(private readonly ProbabilisticManager $probabilistic) {}

    public function store(): void
    {
        $this->probabilistic->bloomFilter('emails_seen')->add(/* ... */);
    }
}
bash
php artisan vendor:publish --tag=probabilistic-config
bash
php artisan probabilistic:list