PHP code example of eloquent-works / exile
1. Go to this page and download the library: Download eloquent-works/exile 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/ */
eloquent-works / exile example snippets
$user->ban(
reason: 'Repeated harassment',
expiresAt: now()->addDays(7),
moderator: $moderator,
);
$user->strike('Spam', points: 3);
$user->restrict(RestrictionType::Posting, 'Posting cooldown');
namespace App\Models;
use EloquentWorks\Exile\Traits\Bannable;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
use Bannable;
}
$ban = $user->ban(
reason: 'Repeated harassment',
expiresAt: now()->addDays(7),
moderator: $moderator,
category: 'harassment',
internalNotes: 'Case EX-1042',
metadata: ['case_number' => 'EX-1042'],
);
$user->isBanned();
use EloquentWorks\Exile\Facades\Exile;
Exile::banIp('203.0.113.10', reason: 'Automated abuse');
Exile::banNetwork('203.0.113.0/24', reason: 'Abusive network');
Exile::banDevice('browser-fingerprint', reason: 'Ban evasion');
Exile::banAccountAndIp(
$user,
request()->ip(),
reason: 'Ban evasion',
);
$user->registerDeviceFingerprint(
fingerprint: $request->header('X-Device-Fingerprint'),
ipAddress: $request->ip(),
label: 'Chrome on Windows',
);
use EloquentWorks\Exile\Enums\WarningSeverity;
$user->warn(
reason: 'Please review the community rules.',
severity: WarningSeverity::High,
);
$user->strike(
reason: 'Spam',
points: 3,
category: 'spam',
);
$user->activeStrikePoints();
use EloquentWorks\Exile\Enums\RestrictionType;
$user->restrict(
RestrictionType::Posting,
reason: 'Posting cooldown',
expiresAt: now()->addDay(),
);
$user->restrict(RestrictionType::ReadOnly);
$user->restrict(RestrictionType::Login);
$user->restrict(RestrictionType::Shadow);
$user->isRestricted(RestrictionType::Posting);
$user->isShadowBanned();
Route::middleware('exile')->group(function () {
Route::get('/dashboard', DashboardController::class);
});
Route::post('/posts', StorePostController::class)
->middleware('exile.allowed:posting');
Route::post('/login/complete', CompleteLoginController::class)
->middleware('exile.allowed:login');
Route::post('/comments', StoreCommentController::class)
->middleware('exile.shadow');
$shadowed = request()->attributes->get('exile.shadowed', false);
use EloquentWorks\Exile\Enums\AppealStatus;
use EloquentWorks\Exile\Facades\Exile;
$appeal = Exile::submitAppeal(
$ban,
$user,
'I believe this enforcement was issued in error.',
);
Exile::resolveAppeal(
$appeal,
AppealStatus::Approved,
$reviewer,
'Appeal accepted.',
);
$evidence = Exile::attachEvidence(
subject: $ban,
disk: 'private',
path: 'moderation/case-1042/report.pdf',
originalName: 'report.pdf',
uploadedBy: $moderator,
);
$evidence = Exile::storeEvidence(
$ban,
$request->file('evidence'),
$moderator,
);
Exile::revokeBan($ban, $moderator);
Exile::revokeRestriction($restriction, $moderator);
Exile::revokeStrike($strike, $moderator);
'notifications' => [
'enabled' => true,
'channels' => ['mail'],
],
bash
php artisan exile:expire
php artisan exile:prune
bash
php artisan exile:prune --force --days=365