mirror of
https://gitee.com/koogua/course-tencent-cloud.git
synced 2025-06-27 21:10:24 +08:00
65 lines
1.3 KiB
PHP
65 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace App\Traits;
|
|
|
|
use App\Models\Client as ClientModel;
|
|
use Phalcon\Di;
|
|
use Phalcon\Http\Request;
|
|
use WhichBrowser\Parser as BrowserParser;
|
|
|
|
trait Client
|
|
{
|
|
|
|
public function getClientIp()
|
|
{
|
|
/**
|
|
* @var Request $request
|
|
*/
|
|
$request = Di::getDefault()->get('request');
|
|
|
|
return $request->getClientAddress();
|
|
}
|
|
|
|
public function getClientType()
|
|
{
|
|
/**
|
|
* @var Request $request
|
|
*/
|
|
$request = Di::getDefault()->get('request');
|
|
|
|
$platform = $request->getHeader('X-Platform');
|
|
|
|
$types = array_flip(ClientModel::types());
|
|
|
|
if (!empty($platform) && isset($types[$platform])) {
|
|
return $types[$platform];
|
|
}
|
|
|
|
$userAgent = $request->getServer('HTTP_USER_AGENT');
|
|
|
|
$result = new BrowserParser($userAgent);
|
|
|
|
$clientType = ClientModel::TYPE_PC;
|
|
|
|
if ($result->isMobile()) {
|
|
$clientType = ClientModel::TYPE_H5;
|
|
}
|
|
|
|
return $clientType;
|
|
}
|
|
|
|
public function isMobileBrowser()
|
|
{
|
|
/**
|
|
* @var Request $request
|
|
*/
|
|
$request = Di::getDefault()->get('request');
|
|
|
|
$userAgent = $request->getServer('HTTP_USER_AGENT');
|
|
|
|
$result = new BrowserParser($userAgent);
|
|
|
|
return $result->isMobile();
|
|
}
|
|
|
|
} |