Diferencia entre revisiones de «Como Usar los Modelos en KumbiaPHP»

De KumbiaPHP Framework Wiki
(Página creada con '== Introducción == Los Modelos representan la lógica de la aplicación y son parte fundamental para el momento que se desarrolla una aplicación, un buen uso de estos nos perm...')
 
Línea 3: Línea 3:
  
 
Por lo general un mal uso de los modelos es solo dejar el archivo con la declaración de la clase y toda la lógica se genera en el controlador. Esta práctica trae como consecuencia que en primer lugar el controlador sea intendible por alguien que intente agregar y/o modificar algo en esa funcionalidad, en segundo lugar lo poco que puedes rehusar el código en otros controladores y lo hace es repetirse el código que hace lo mismo en otro controlador.
 
Por lo general un mal uso de los modelos es solo dejar el archivo con la declaración de la clase y toda la lógica se genera en el controlador. Esta práctica trae como consecuencia que en primer lugar el controlador sea intendible por alguien que intente agregar y/o modificar algo en esa funcionalidad, en segundo lugar lo poco que puedes rehusar el código en otros controladores y lo hace es repetirse el código que hace lo mismo en otro controlador.
 +
 +
Partiendo de este principio los controladores '''NO''' deberían contener ningún tipo de lógica solo se encargan de atender las peticiones del usuarios y solicitar dicha información a los modelos con esto garantizamos un buen uso del MVC.
 +
 +
== Un Buen Modelo ==
 +
A continuación una muestra de un buen modelo en [http://www.kumbiaphp.com KumbiaPHP]
 +
 +
<pre lang=php >
 +
<?php
 +
 +
class Articulos extends ActiveRecord {
 +
 +
public function ver($page=1,$ppage=10){
 +
 +
return $this->paginate('order: creat_at desc',
 +
"page: $page",
 +
"per_page: $ppage");
 +
}
 +
 +
public function ultimos($limit=10) {
 +
$today = date('now');
 +
return $this->find('order: creat_at desc',
 +
  "conditions: data > $today",
 +
  "limit: $limit");
 +
 +
}
 +
 +
public function buscar($busqueda){
 +
$busqueda = filter_var($busqueda, FILTER_SANITIZE_STRING);
 +
return $this->find_all_by_sql("SELECT * FROM copa.articulos a WHERE MATCH (titulo,texto) AGAINST('\"$busqueda\"' IN BOOLEAN MODE) ORDER BY creat_at DESC");
 +
 +
}
 +
}
 +
</pre>
 +
 +
Normalmente este código muchos usuarios lo colocan en el controller quedando el mismo '''ilegible''', colocandolo como se muestra arriba queda muy limpia la implementación de los mismo en nuestros modelos en los controller.

Revisión del 00:34 6 ago 2009

Introducción

Los Modelos representan la lógica de la aplicación y son parte fundamental para el momento que se desarrolla una aplicación, un buen uso de estos nos permiten un gran poder al momento que se necesita escalar, mantener y rehusar código en una aplicación.

Por lo general un mal uso de los modelos es solo dejar el archivo con la declaración de la clase y toda la lógica se genera en el controlador. Esta práctica trae como consecuencia que en primer lugar el controlador sea intendible por alguien que intente agregar y/o modificar algo en esa funcionalidad, en segundo lugar lo poco que puedes rehusar el código en otros controladores y lo hace es repetirse el código que hace lo mismo en otro controlador.

Partiendo de este principio los controladores NO deberían contener ningún tipo de lógica solo se encargan de atender las peticiones del usuarios y solicitar dicha información a los modelos con esto garantizamos un buen uso del MVC.

Un Buen Modelo

A continuación una muestra de un buen modelo en KumbiaPHP

<?php

class Articulos extends ActiveRecord {
	
	public function ver($page=1,$ppage=10){
		
		return $this->paginate('order: creat_at desc',
					"page: $page",
					"per_page: $ppage");	
	}
	
	public function ultimos($limit=10) {
		$today = date('now');
		return $this->find('order: creat_at desc',
				   "conditions: data > $today",
				   "limit: $limit");
		
	}
	
	public function buscar($busqueda){
		$busqueda = filter_var($busqueda, FILTER_SANITIZE_STRING);
		return $this->find_all_by_sql("SELECT * FROM copa.articulos a WHERE MATCH (titulo,texto) AGAINST('\"$busqueda\"' IN BOOLEAN MODE) ORDER BY creat_at DESC");
		
	}
}

Normalmente este código muchos usuarios lo colocan en el controller quedando el mismo ilegible, colocandolo como se muestra arriba queda muy limpia la implementación de los mismo en nuestros modelos en los controller.