Было ли обсуждение с коллегой о том, что это плохая практика или нет. Теперь я не могу найти немедленные примеры этого онлайн.
У нас много картотекторов объектов базы данных и называются такими функциями
(пример) - метод 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
}