Thursday, July 5, 2012

OOP recommended practices

Inheritance

class Customer {
    protected $discount = 0;
   
    public function getDiscount() {
        return $this->discount;
    }
}

class CustomerPremium extends Customer {
    protected $discount = 5;
}


Global Constants

Recommended: no use of global constants inside class methods.

class MyClass {
    protected $path_server;
   
    public function setPathServer($path_server) {
        $this->path_server = $path_server;
    }
   
    public function getFileContents($file) {
        return file_get_contents($this->path_server . '/' . $file);
    }
}


Abstract & Final

abstract class MyClassAbstract {
    abstract protected function computeData();
    abstract protected function sendMail();
   
    final public function run() {
        $this->computeData();
        $this->sendMail();
    }
}

class MyClass extends MyClassAbstract {
   
    protected function computeData() {
        ...
    }
   
    protected function sendMail() {
        ...
    }
}

No comments: