<?php



trait MyTrait {


    public $name;

    public $date = "5/6/2025";

    public function DataCreation($name) {

        $this->name = $name;

        echo $this->name . " is created " . $this->date;
    }


    public function DataDelete() {

        echo "Data is deleted we are in MyTrait";
    }
}

trait MyOtherTrait {


    public function DataUpdating() {

        

        echo "Data is updated";
    }


     public function DataDelete() {

        echo "Data is deleted we are in MyOtherTrait";
    }

}


class Product {


    use MyTrait, MyOtherTrait {
        MyTrait::DataDelete insteadOf MyOtherTrait;
        MyOtherTrait::DataDelete as DataDeleteMyOtherTrait;

    }



}



class User {


    use MyTrait, MyOtherTrait{
        MyTrait::DataDelete insteadOf MyOtherTrait;
        MyOtherTrait::DataDelete as DataDeleteUser;

    }



}

$product = new Product;
$product->DataCreation("product");

echo "<br>";
$product->DataUpdating();


echo "<br>";
$product->DataDelete();

echo "<br>";
$product->DataDeleteMyOtherTrait();



echo "<br>";
echo "<br>";
echo "<br>";
echo "<br>";
$user = new User;
$user->DataCreation("user");

echo "<br>";

$user->DataDelete();
echo "<br>";
$user->DataDeleteUser();

// echo "<br>";
// $user->DataUpdating();