esycat
Новичок
Получение данных по различным параметрам и использование factory method'ов
Пожалуйста, посоветуйте, как лучше решить следующую задачу.
Существует класс для получения, сохранения и удаления информации из базы данных о неких объектах. Примерно так:
Теперь попмимо получения объекта по id необходимо добавить возможность получения по нескольким другим параметрам объекта (например, $aid и $bid), которые вместе составляют уникальный ключ в базе данных.
Как это правильно сделать и насколько вообще плоха подобная реализация?
Например, можно добавить метод, который будет сначала получать из базы данных значение $id по $aid и $bid. Но это лишний, хотя и очень быстрый запрос.
Можно сделать оверлодинг метода load() и получать данные об объекте по $id или по $aid и $bid.
И как лучше передавать $aid и $bid в объект, создаваемый из соответствующего getBy…(), если __construct() уже принимает только $id?
Пожалуйста, посоветуйте, как лучше решить следующую задачу.
Существует класс для получения, сохранения и удаления информации из базы данных о неких объектах. Примерно так:
PHP:
class Product {
protected $data = array();
function __construct($id = null) { … }
public static function getById($id) {
$classname = __CLASS__;
$instance = new $classname($id);
return ($instance->load()) ? $instance : false;
}
public function load() { … }
public function save() { … }
public function delete() { … }
}
Как это правильно сделать и насколько вообще плоха подобная реализация?
Например, можно добавить метод, который будет сначала получать из базы данных значение $id по $aid и $bid. Но это лишний, хотя и очень быстрый запрос.
Можно сделать оверлодинг метода load() и получать данные об объекте по $id или по $aid и $bid.
И как лучше передавать $aid и $bid в объект, создаваемый из соответствующего getBy…(), если __construct() уже принимает только $id?