Może tytuł nie specjalnie opisuję to co chce uzyskać, ale głowie się nad pewnym problemem i niespecjalnie wiem nawet jak go prawidłowo nazwać. Mianowicie korzystając z chainingu chcę wykonać metodę po uzupełnieniu kilku innych wartości z klasy.
//kod zmodyfikowany class DB { private $table; private $select; private $where; private $prepareQuery; protected function table($table) { $this->table = $table; return $this; //zapomniałem dodać wcześniej } protected function select($args) { $this->select = "select explode(',' , $args) from "; return $this; //zapomniałem dodać wcześniej } protected function where($clause) { $this->where = $clause; return $this; //zapomniałem dodać wcześniej } private function prepareQuery() { $this->prepareQuery = $this->select . $this->table . ' ' . $this->where; } private function executeQuery() { //zwracane pola z tabeli; } } class Cos extends DB { public function __construc() { parent::_construct(); } public function cos() { $rows = $this->select('field')->from('tableName')->where('field = 1'); } }
I chodzi mi o to, żeby taki zapis wykonywał funkcje executeQuery, ale dopiero po sprawdzeniu wszystkich argumentów czyli jeśli zrobiłbym tylko
to też miałoby zadziałać.
$rows = $db->select('field')->from('tableName');