Tuve una discusión con un colega sobre si esta es una mala práctica o no. Ahora no puedo encontrar ejemplos inmediatos de esto en línea.Método estático get - is this bad bad practice?
Tenemos una gran cantidad de objetos mappers base de datos y llamamos Sus funciones como tal
(ejemplo) - el método setId conseguir es la fila de la base de datos y establece es que propertys predefinidos
class Person {
public static function get($id) {
$object = new Person;
$object->setId($id);
return $object;
}
}
Usándolo como esto podemos utilizar construcciones simples de esta manera: (donde nos dieron el id de para-ejemplo un post)
$person = Person::get($id);
en lugar de
$person = new Person;
$person->setId($id);
Ahora, mi instinto me dice que esto es una mala práctica. Pero no puedo explicarlo. Tal vez alguien aquí puede explicar por qué esto es, o no es una mala práctica
Aquí hay algunos otros ejemplos de cómo lo usamos. lo usamos principalmente para getters. (Sólo los nombres, no el código. Casi todos ellos sólo ejecutar una consulta, que puede volver 1 objeto y luego utilizar el identificador del resultado de utilizar el método 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
}
* (relacionados) * http://stackoverflow.com/questions/5166087/php-global-in-functions/5166527#5166527 – Gordon
Sólo mis dos centavos, pero Taylor Otwell de laravel consiguió calor debido a su uso de métodos estáticos de patrones de fábrica y otros métodos estáticos, pero adivine qué cobertura del 100% de la unidad. –