【问题标题】:trait - get implemented class from traittrait - 从 trait 获取实现的类
【发布时间】:2020-09-13 20:13:58
【问题描述】:

我有以下 trait 实现:

static function getNextHashId($class)
{
    $data = DB::table("information_schema.TABLES")
        ->where("TABLE_SCHEMA", env('DB_DATABASE'))
        ->where("TABLE_NAME", with(new static)->getTable())
        ->pluck("AUTO_INCREMENT")[0];
    return Hashids::connection($class)->encode($data);
}

但是当我有很多实现特征的类时,它效率不高,因为我需要将类传递给方法。

   Class1::getNextHashId(Class1::class);
   Class2::getNextHashId(Class2::class);

是否可以从特征中删除 get 类?所以我只需要写Class1::getNextHashId(); 怎么办?

【问题讨论】:

    标签: php traits


    【解决方案1】:

    进一步搜索后,可以通过静态绑定来完成。

    return Hashids::connection(static::class)->encode($data);
    

    【讨论】:

      猜你喜欢
      • 2023-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多