Cita:
Iniciado por elgoncho99 Si, seria correcto.
Las clases estan diseñadas para manejar lo que son, si haces una clase llamada material. cada instancia maneja 1 material solo. Si haces una clase para manejar colecciones, 1 objeto de esa clase hara eso precisamente manejar 1 coleccion de algo.
En el siguiente link
http://ar.php.net/manual/es/class.iterator.php
Es una interfaz la cual tenes que implementar para manejar colecciones de objetos.
Espero te sirva, saludos.
elgoncho99, muchas gracias por la informacion pero no entiendo muy bien como implementarlo.
Código PHP:
Ver originalinclude('db.php');
class material extends DB{
public $id;
public $nombre;
public $referencia;
public $peso;
public $tamano;
public function __construct($id_material){
$sql= "
SELECT
*
FROM material
WHERE id = ".$id_material."
";
$this->query = $sql;
$t_material = $this->AssocList();
foreach($t_material as $k => $v){
$this->id = $t_material[$k]['id'];
$this->nombre = $t_material[$k]['nombre'];
$this->referencia = $t_material[$k]['referencia'];
$this->peso = $t_material[$k]['peso'];
$this->tamano = $t_material[$k]['tamano'];
}
}
}
class MaterialCollection implements Iterator {
private $_items = null;
public function __construct() {
$this->_material
= array(); }
public function addItem($i){
$this->_items[] = $i;
}
public function removeItem($i){
}
}
}
return key($this->_items
); }
return next($this->_items
); }
public function valid() {
}
}
$material = new material(1);
echo $material->id;
$mc = new MaterialCollection();
ahora que tengo las dos clases, le tengo que pasar tada la informacion de material a la clase MaterialCollection?? o como se hace??
lo que me tendria que devolver MaterialCollection seria toda la informacion de todos los materiales para ponerlo en un listado.
Saludos