PHP code example of mafrasil / laravel-sonar
1. Go to this page and download the library: Download mafrasil/laravel-sonar 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/ */
mafrasil / laravel-sonar example snippets
use Mafrasil\LaravelSonar\Facades\LaravelSonar;
LaravelSonar::track('order-processed', 'custom', [
'orderId' => $order->id,
'amount' => $order->total
]);
return [
'route' => [
'prefix' => 'api',
'middleware' => ['api'],
],
'queue' => [
'batch_size' => 10,
'flush_interval' => 1000,
],
// ...
];
use Mafrasil\LaravelSonar\Facades\LaravelSonar;
// Get events grouped by type
$eventsByType = LaravelSonar::getEventsByType(
startDate: now()->subDays(7), // optional
endDate: now() // optional
);
// Get most active pages
$topPages = LaravelSonar::getTopPages(
limit: 10, // optional, defaults to 10
startDate: now()->subDays(30) // optional
);
// Get event timeline
$timeline = LaravelSonar::getEventTimeline(
interval: '1 day', // optional, defaults to '1 day'
startDate: now()->subDays(30) // optional
);
// Get most triggered events
$topEvents = LaravelSonar::getTopEvents(
limit: 10, // optional, defaults to 10
type: 'click' // optional, filter by event type
);
// Get user engagement metrics
$engagement = LaravelSonar::getUserEngagement();
'allowed_emails' => [
'[email protected] ',
],
use Illuminate\Support\Facades\Gate;
public function boot()
{
Gate::define('viewSonar', function ($user) {
return $user->hasRole('admin') || $user->hasPermission('view-analytics');
});
}
class AnalyticsDashboardController extends Controller
{
public function index()
{
return view('analytics.dashboard', [
'eventsByType' => LaravelSonar::getEventsByType(now()->subDays(30)),
'topPages' => LaravelSonar::getTopPages(5),
'dailyEvents' => LaravelSonar::getEventTimeline(),
'topClickedElements' => LaravelSonar::getTopEvents(5, 'click'),
'engagement' => LaravelSonar::getUserEngagement(),
]);
}
}
bash
php artisan sonar:install
php artisan vendor:publish --tag=sonar-assets
bash
php artisan vendor:publish --tag=sonar-config # Publish the config file
php artisan vendor:publish --tag=sonar-assets # Publish the assets
php artisan vendor:publish --tag=sonar-migrations # Publish the migrations
php artisan migrate # Run the migrations
bash
php artisan vendor:publish --tag=sonar-views
bash
php artisan sonar:export-react
jsx
import { SonarTracker } from "@/components/SonarTracker";
function SignupButton() {
return (
<SonarTracker
name="signup-button"
metadata={{ variant: "blue" }}
trackAllHovers={true} // Optional: track repeated hovers
>
<button>Sign Up</button>
</SonarTracker>
);
}
jsx
import { useSonar } from "@/hooks/useSonar";
function CheckoutForm() {
const { track, configure } = useSonar();
// Optional: Configure tracking behavior
useEffect(() => {
configure({ trackAllHovers: true });
}, []);
const handleSubmit = () => {
track("checkout-complete", "custom", {
amount: 99.99,
currency: "USD",
});
};
return <form onSubmit={handleSubmit}>{/* form fields */}</form>;
}
bash
php artisan sonar:stats --limit=20