دورة php للمبتدئين الدرس الثالت العشرون


فهاد الدرس الثالت والعشرون من دورة php للمبتدئين غادي نكملو الدورة ديالنا من بعد ما شفنا كيفاش نزيدو une classe فالدرس السابق مع les propriétés ديالها و les fonctions فدبا غادي نشوفوا كيفاش نردو l’accès ل la classe ديالنا privé وكيفاش نزيدو ل getters و setters باش نسترجعوا ونعدل les propriétés ديال ل classe  من بعد غادي نشوفوا كيفاش نخدموا ب l'héritage.


1- كيفاش نردو l’accès ل la classe ديالنا privé

باش نردوا l’accès ل la classe ديالنا privé حيت les propriétés ديالنا ديكلاريناهم public يعني اي واحد ممكن انه يسترجع القيمة ديالهم من بعد ما ي créer l'objet من la classe خاص نردهم private.
فالمثال لي عندنا لي هو نفس la classe لي كانت فالدرس السابق بدلنا les propriétés من public ل private يعني دبا ميمكنش يكون عندي l’accès مباشرة ليهم.
فالدرس السابق كنا من بعد ما زدنا l'objet employe عرضنا name بهاد الطريقة :
$employe->name;
فدبا وخا نديرها غادي يقولي ل  l’accès ولى privé فباش نسترجع les propriétés خاص نخدموا بل getters & setters وهادشي لي غادي نشوفوا منبعد الكود لي زدنا هو :


                                //index.php

<?php
    class Person{
        private $name;
        private $email;
        private $password;
        
        public function __construct($name,$email,$password){
                $this->name = $name;
                $this->email = $email;
                $this->password = $password;
        }
  }  
?>
                            

2- إضافة ل getters & setters

فل getters & setters هما des fonctions لي كيمكنوني باش نسترجع ونعدل les propriétés d'une classe.
tفالمثال لي عندنا زدت fonction getName لي هي بمثابة getter كتمكني من انني نسترجع ل propriété name.
وزدت ايضا setter لي هي ل fonction setName لي كتاخد name فل paramètres وكتعدلنا الإسم.
منبعد باش نخدم بيهم كيف شفنا قبل كن créer l'objet من la classe وكنعيط لكل fonction بغيت نخدم بها هنا بدلنا name ل amine منبعد استرجعناه بل getter.
الكود لي زدنا هو :

                                //index.php

<?php
    class Person{
        private $name;
        private $email;
        private $password;
        
        public function __construct($name,$email,$password){
                $this->name = $name;
                $this->email = $email;
                $this->password = $password;
        }
        public function getName(){
            return $this->name;
        }
        public function setName($name){
            $this->name = $name;
        }
  }  
  $employe = new Person('samadi','samadi@email.com','samadi');
  $employe->setName('amine');
  echo $employe->getName();
?>
                            

3- استخدام ل héritage ف php

فل héritage كيمكن une classe باش تخدم ب les propriétés و les fonctions ديال classe وحدة أخرى باش نديرو هادشي عندنا ل mot clé extends لي كيمكنا باش نقولو ل la classe ت hériter من classe أخرى.
فالمثال لي عندنا زدنا classe Client لي كت hériter من Person وفل constructeur حددت بلي غادي نخدم بل constructeur ديال la classe parente لي هي Person وعطيتو نفس les propriétés لي عندها وزدت getter & setters باش نسترجع ونعدل les propriétés ديال la classe.
الكود لي زدنا هو :

                                //index.php

class Client extends Person{
    private $adress;
    private $tel;
    
    public function __construct($name,$email,$password,$adress,$tel){
        parent::__construct($name,$email,$password);
        $this->adress = $adress;
        $this->tel = $tel;
    }
    public function getAdress(){
        return $this->adress;
    }
    public function setAdress($adress){
        $this->adress = $adress;
    }
    public function getTel(){
        return $this->tel;
    }
    public function setTel($tel){
        $this->tel = $tel;
    }
}
                            

4- استخدام les fonctions ديال la classe parente

فدبا باش ن afficher الإسم والإيمايل وكلمة المرور ديال ل client كيكفي باش ن créer l'objet من la classe Client ونستخدم les fonctions ديال la classe Person.
فالمثال لي عندنا زدنا objet de type Client عطيناه les propriétés منبعد عرضت الإسم بل fonction getName ديال Person فوخا مكايناش ف la classe Client فحيت كت hériter من Person فكنخدم بها.
الكود لي زدنا هو :

                                    //index.php

class Client extends Person{
    private $adress;
    private $tel;
    
    public function __construct($name,$email,$password,$adress,$tel){
        parent::__construct($name,$email,$password);
        $this->adress = $adress;
        $this->tel = $tel;
    }
    public function getAdress(){
        return $this->adress;
    }
    public function setAdress($adress){
        $this->adress = $adress;
    }
    public function getTel(){
        return $this->tel;
    }
    public function setTel($tel){
        $this->tel = $tel;
    }
}
$client = new Client('samadi','samadi@email.com','123456','rue afrah','233344');
echo $client->getName();
?>