Ultimamente estoy usando Zend (framework php), yo ya más acostumbrado a django estaba buscando algo como
count = Comment.objects.filter(owner=1).count()
Pero en Zend la opción que encontre fue:
$table = new Comments;
$select = $table->select()->where('owner = ?', 1);
$comments = $table->fetchAll($select);
$count = $comments->count();
...tedioso!!!
e ineficiente, por que primero saca todos los resultados de la db, y
recién retorna la cantidad. En cambio todos sabemos que un SELECT
COUNT(*) es mucho más rápido, especialmente con tablas indexadas.
Entonces,
todos mis modelos heredan de Core_Db_Table que esta a su vez hereda de
Zend_Db_Table, añado un método para realizar mi querido SELECT COUNT(*)
[code=php]
class Core_Db_Table extends Zend_Db_Table {
// ...
public function count(Zend_Db_Select $select) {
$select = $select->from($this->info("name"), array("count" => "COUNT(*)"));
return $this->getAdapter()->fetchOne($select->__toString());
}
}
Listo, ahora ya puedo hacer cosas más decentes:
$table = new Comments;
$select = $table->select()->where("owner = ?", 1);
$count = $table->count($select);
No es tan hermoso como django.... pero algo es algo
. De ahí es un paso para permitir $table->count() o $table->count("owner = ?", 1)

Comentarios
Nooooooooooooooo
¡no me gusta php!
¡no me gusta php!
¡no me gusta php!
Aprendí c, luego python, luego php.. luego javascript.... después de utilizar php he sentido que aprendí malos hábitos
Ni modo, ya comiste del fruto prohibido
PD. Es solo una broma