定義一個公共的模型繼承類,看了文檔說使用過多static會造成內(nèi)存泄漏。這樣寫會遇到內(nèi)存泄漏或者是其他的問題嗎
<?php
namespace ceshi\basic;
use think\db\Query;
use think\Model;
use think\model\concern\SoftDelete;
/**
* 基礎(chǔ)模型類
* 提供通用的數(shù)據(jù)庫操作方法
*/
class BaseModel extends Model
{
// 使用軟刪除功能
use SoftDelete;
protected $deleteTime = 'delete_time';
/**
* 統(tǒng)一ID數(shù)據(jù)更新
* @param array $data 更新數(shù)據(jù),必須包含 id
* @return bool
* @throws \Exception
*/
public static function edit(array $data): bool
{
self::validateId($data);
$model = self::findOrFail($data['id']);
return $model->save($data);
}
/**
* 獲取分頁列表
* @param array $where 查詢條件
* @param array $order 排序規(guī)則
* @param string $field 查詢字段
* @param int $page 當前頁碼
* @param int $limit 每頁條數(shù)
* @param string $group 分組字段
* @return array
*/
public static function getList(array $where = [], array $order = ['id' => 'DESC'], string $field = '*', int $page = 1, int $limit = 10, string $group = ''): array
{
$query = self::buildQuery($where, $order, $field, $group);
return $query->page($page, $limit)->select()->toArray();
}
}
<?php
namespace app\model\sys;
use ceshi\basic\BaseModel;
class SysUserModel extends BaseModel{
protected $table = 'sys_user';
}
<?php
namespace app\test\controller;
use app\model\sys\SysUserModel;
use hunma\basic\ApiResponse;
use hunma\basic\BaseController;
class TestBaseModelController extends BaseController
{
public function success(){
$data = SysUserModel::find(1);
return ApiResponse::success($data);
}
}