Skip to content

Commit 4f62418

Browse files
committed
#26 - php
Reto basico
1 parent 76c4740 commit 4f62418

File tree

1 file changed

+81
-0
lines changed

1 file changed

+81
-0
lines changed
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
<?php
2+
3+
// Ejercicio básico
4+
5+
class User {
6+
private $name;
7+
private $role;
8+
9+
public function __construct($name, $role){
10+
$this->name = $name;
11+
$this->role = $role;
12+
}
13+
14+
public function getName(){
15+
return $this->name;
16+
}
17+
18+
public function getRole(){
19+
return $this->role;
20+
}
21+
22+
public function saveUser(){
23+
$file = fopen('usersBD.txt', 'a');
24+
fwrite($file, $this->name . ' is a ' . $this->role . PHP_EOL);
25+
fclose($file);
26+
}
27+
}
28+
29+
echo "\n\nVamos a mostrar primero una clase que no cumple el SRP. Esto se debe a que la clase, ademas de gestionar el usuario, realizar la inserccion en BD (en este caso simualdo con un txt)\n\n";
30+
$user1 = new User('Miguel', 'Admin');
31+
$user1->saveUser();
32+
$user2 = new User('Maria', 'user');
33+
$user2->saveUser();
34+
echo "\nSe ha creado el archivo y podemos ver se ha ineertado correctamente. Vamos a refactorizar ahora para cumplir el SRP\n\n";
35+
36+
37+
class Users {
38+
private $name;
39+
private $role;
40+
41+
public function __construct($name, $role){
42+
$this->name = $name;
43+
$this->role = $role;
44+
}
45+
46+
public function getName(){
47+
return $this->name;
48+
}
49+
50+
public function getRole(){
51+
return $this->role;
52+
}
53+
}
54+
55+
class UsersBD {
56+
private $path;
57+
58+
public function __construct($path){
59+
$this->path = $path;
60+
}
61+
62+
public function saveUser(Users $users){
63+
$file = fopen($this->path, 'a');
64+
fwrite($file, $users->getName() . ' is a ' . $users->getRole() . PHP_EOL);
65+
fclose($file);
66+
}
67+
}
68+
69+
echo "\n\nHemos refactorizado el codigo anterior, separando la parte de usuarios de la parte de BD\n\n";
70+
$user1 = new Users('Miguel', 'Admin');
71+
$user2 = new Users('Maria', 'user');
72+
$userBD = new UsersBD('userBDSRP.txt');
73+
$userBD->saveUser($user1);
74+
$userBD->saveUser($user2);
75+
echo "\nSe ha creado el archivo y podemos ver se ha insertado correctamente. A efectos de funcionamiento ambas solucioens funcionan igual pero la segunda es mas legible y mantenible\n\n";
76+
77+
echo "\n\nEjercicio Extra\n\n";
78+
79+
// Extra
80+
81+

0 commit comments

Comments
 (0)