Здравствуйте.
Разбираю пошагово ActiveRecord и не могу понять как работает данный принцип. Если я в конструкторе возвращаю цепочку, то данных нет. Если извне тяну то все работает.
Как я понимаю проблема в том, что конструктор не может ничего возвращать и нужно вызвать эту цепочку вне конструктора. Не могу понять как это делает ActiveRecord, там уже заплутал в коде их.
Направьте пожалуйста в правильное направление меня.
class Member{
static function find($params=null){
return new Query(get_called_class(),$params);
}
}
class Query{
public function __construct($className, $params = []){
if (is_numeric($params)) {
$this->where("id = ?", $params)->one();
}
}
/* where select etc... */
}
$member = Member::find(1); // Нет списка из базы
$member = Member::find()->where("id = ?", 1)->one(); // Есть список из базы