web-dev-qa-db-fra.com

Existe-t-il un moyen d'étendre la caractéristique en PHP?

Je veux utiliser la fonctionnalité de trait existante et créer ma propre trait par-dessus, pour l'appliquer plus tard sur les classes.

Je veux précisément étendre Laravel SoftDeletes trait pour rendre SaveWithHistoryfonction, il créera donc une copie d'un état actuel d'un enregistrement comme enregistrement supprimé. Je veux également l'étendre avec record_made_by_user_idchamp.

45
Yevgeniy Afanasyev

Oui il y a. Il vous suffit de définir un nouveau trait comme celui-ci:

trait MySoftDeletes 
{
    use SoftDeletes {
        SoftDeletes::saveWithHistory as parentSaveWithHistory;
    }

    public function saveWithHistory() {
        $this->parentSaveWithHistory();

        //your implementation
    }
}
98
Filip Koblański