有没有办法在PHP中扩展一个特征?
我想使用现有功能并在其上创建自己的功能,以便以后将其应用于类。trait
trait
我想扩展特征以使其功能,因此它将创建记录的副本作为已删除的记录。我还想用字段扩展它。Laravel SoftDeletes
SaveWithHistory
record_made_by_user_id
我想使用现有功能并在其上创建自己的功能,以便以后将其应用于类。trait
trait
我想扩展特征以使其功能,因此它将创建记录的副本作为已删除的记录。我还想用字段扩展它。Laravel SoftDeletes
SaveWithHistory
record_made_by_user_id
是的,有。你只需要像这样定义新的特征:
trait MySoftDeletes
{
use SoftDeletes {
SoftDeletes::saveWithHistory as parentSaveWithHistory;
}
public function saveWithHistory() {
$this->parentSaveWithHistory();
//your implementation
}
}
我有不同的方法。 在此特征中仍然适用方法,因此至少应将其定义为私有。ParentSaveWithHistory
trait MySoftDeletes
{
use SoftDeletes {
saveWithHistory as private parentSaveWithHistory;
}
public function saveWithHistory()
{
$this->parentSaveWithHistory();
}
}
还要考虑在特征中“重写”方法:
use SoftDeletes, MySoftDeletes {
MySoftDeletes::saveWithHistory insteadof SoftDeletes;
}
此代码使用 from 的方法,即使它存在于 中。saveWithHistory
MySoftDeletes
SoftDeletes