-
Notifications
You must be signed in to change notification settings - Fork 1
/
persona_model.inc.php
105 lines (94 loc) · 2.82 KB
/
persona_model.inc.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
<?php
/**
* Created by PhpStorm.
* User: Osmium
* Date: 08/24/2015
* Time: 1:54 PM
*/
if(!class_exists("Persona")){
include "persona.inc.php";
}
if(!function_exists("get_connection")){
include "mongo.php";
}
class PersonaModel{
private $persona;
private $connecion;
private $CPersona;
/**
* PersonaModel constructor.
* @param $persona
*/
public function __construct(Persona $persona = null)
{
if($persona)
$this->persona = $persona;
$this->connecion = get_connection();
$this->connecion->selectDB("test");
$this->CPersona = $this->connecion->selectCollection("test", "persona");//selecciona la coleccion
}
public static function bootrapPersona($data){
$persona = new Persona($data["identificacion"],
$data["nombre"],
$data["edad"],
$data["direccion"],
isset($data["id"])?$data["id"]:0
);
return $persona;
}
public static function bootrapPersonaMongo($data){
$persona = new Persona($data["identificacion"],
$data["nombre"],
$data["edad"],
$data["direccion"],
$data["_id"]->{'$id'});
return $persona;
}
/**
* @return mixed
*/
public function getPersona()
{
return $this->persona;
}
/**
* @param mixed $persona
*/
public function setPersona(Persona $persona)
{
$this->persona = $persona;
}
function crear_persona(Persona $data){
$mapa_persona = $data->toCollection();
$this->CPersona->insert($mapa_persona);
return TRUE;
}
function borrar_persona($id){
$this->CPersona->remove(array('_id' => new MongoId($id)));
return TRUE;
}
function get_personas(){
$query = $this->CPersona->find();
$lista = array();
foreach($query as $row){
$persona = self::bootrapPersonaMongo($row);
array_push($lista, $persona->toCollection(TRUE));
}
return $lista;
}
function actualizar_persona(Persona $data){
$pmongo = $this->CPersona->findOne(array('_id' => new MongoId($data->getId())));
$pbjmongo= self::bootrapPersona($pmongo);
//actualizo campos
$pbjmongo->setIdentificacion($data->getIdentificacion());
$pbjmongo->setNombre($data->getNombre());
$pbjmongo->setEdad($data->getEdad());
$pbjmongo->setDireccion($data->getDireccion());
//actualizar en mongo
$this->CPersona->update(array('_id' => new MongoId($data->getId())), array('$set'=>$pbjmongo->toCollection()));
return TRUE;
}
public function get_persona($id){
return $this->CPersona->findOne(array('_id' => new MongoId($id)));
}
}