feat: add app and database modules

This commit is contained in:
2026-05-21 16:05:11 +07:00
parent 37b7e783f5
commit fad70d096b
212 changed files with 23901 additions and 0 deletions
+69
View File
@@ -0,0 +1,69 @@
<?php
namespace App\Helpers;
class SessionHelper
{
/**
* Parses the User Agent string into friendly Browser and OS info.
*/
public static function parseUserAgent(?string $userAgent): array
{
if (! $userAgent) {
return [
'browser' => 'Unknown',
'os' => 'Unknown',
'browser_icon' => 'bi-question-circle',
'os_icon' => 'bi-question-circle',
];
}
$browser = 'Unknown';
$os = 'Unknown';
$browserIcon = 'bi-globe';
$osIcon = 'bi-display';
// OS Detection
if (preg_match('/android/i', $userAgent)) {
$os = 'Android';
$osIcon = 'bi-phone';
} elseif (preg_match('/iphone|ipad|ipod/i', $userAgent)) {
$os = 'iOS';
$osIcon = 'bi-phone';
} elseif (preg_match('/windows|win32/i', $userAgent)) {
$os = 'Windows';
$osIcon = 'bi-windows';
} elseif (preg_match('/apple|macintosh|mac os x/i', $userAgent)) {
$os = 'macOS';
$osIcon = 'bi-apple';
} elseif (preg_match('/linux/i', $userAgent)) {
$os = 'Linux';
$osIcon = 'bi-ubuntu';
}
// Browser Detection
if (preg_match('/edge|edg/i', $userAgent)) {
$browser = 'Edge';
$browserIcon = 'bi-browser-edge';
} elseif (preg_match('/chrome|chromium/i', $userAgent)) {
$browser = 'Chrome';
$browserIcon = 'bi-browser-chrome';
} elseif (preg_match('/firefox/i', $userAgent)) {
$browser = 'Firefox';
$browserIcon = 'bi-browser-firefox';
} elseif (preg_match('/safari/i', $userAgent)) {
$browser = 'Safari';
$browserIcon = 'bi-browser-safari';
} elseif (preg_match('/opera|opr/i', $userAgent)) {
$browser = 'Opera';
$browserIcon = 'bi-browser-opera';
}
return [
'browser' => $browser,
'os' => $os,
'browser_icon' => $browserIcon,
'os_icon' => $osIcon,
];
}
}