Был разговор с коллегой о том, что это плохая практика или нет.Сейчас я не могу найти непосредственные примеры этого онлайн.
У нас есть много средств отображения объектов базы данных, и мы вызываем его функции примерно так:
(пример) - метод setId получает строку из базы данных и устанавливает ее в предопределенные свойства
class Person {
public static function get($id) {
$object = new Person;
$object->setId($id);
return $object;
}
}
Используя его таким образом, мы можем использовать простые конструкции, такие как: (где мы получили идентификатор, например, для сообщения)
$person = Person::get($id);
вместо
$person = new Person;
$person->setId($id);
ТеперьМой инстинкт подсказывает мне, что это плохая практика.Но я не могу это объяснить.Может быть, кто-то здесь может объяснить, почему это так, или это не плохая практика
Вот еще несколько примеров, как мы это используем.мы в основном используем его для добытчиков.(только имена, а не код. Почти все они просто запускают запрос, который может вернуть 1 объект и затем использовать идентификатор результата для использования метода setId)
class CatalogArticle {
public static function get($id) { }
public static function getByArticlenumber($articlenumber) {} //$articlenumber is unique in the database
public static function getRandom() {} //Runs a query returning a random row
}