Files
hyperf_data/extend/Aether/PHP/Hyperf/AetherService.php
2025-09-19 15:14:20 +08:00

48 lines
1.1 KiB
PHP

<?php
declare(strict_types=1);
namespace Aether;
use Aether\Exception\BusinessException;
use Hyperf\DbConnection\Db;
use Hyperf\Di\Annotation\Inject;
use Hyperf\Logger\LoggerFactory;
use Psr\Log\LoggerInterface;
use Throwable;
abstract class AetherService
{
#[Inject]
protected LoggerFactory $loggerFactory;
/**
* 获取当前服务日志器.
*/
protected function logger(): LoggerInterface
{
$className = substr(strrchr(static::class, '\\'), 1);
return $this->loggerFactory->get($className);
}
/**
* 事务处理.
* @throws Throwable
*/
protected function transaction(callable $callback)
{
return Db::transaction($callback);
}
/**
* 检查资源是否存在(不存在则抛出异常).
* @throws BusinessException
*/
protected function checkResourceExists(?object $resource, string $message = '资源不存在'): void
{
if (empty($resource)) {
throw new BusinessException($message, BusinessException::RESOURCE_NOT_FOUND);
}
}
}