You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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 = newUser('Miguel', 'Admin');
31
+
$user1->saveUser();
32
+
$user2 = newUser('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
+
publicfunction__construct($name, $role){
42
+
$this->name = $name;
43
+
$this->role = $role;
44
+
}
45
+
46
+
publicfunctiongetName(){
47
+
return$this->name;
48
+
}
49
+
50
+
publicfunctiongetRole(){
51
+
return$this->role;
52
+
}
53
+
}
54
+
55
+
class UsersBD {
56
+
private$path;
57
+
58
+
publicfunction__construct($path){
59
+
$this->path = $path;
60
+
}
61
+
62
+
publicfunctionsaveUser(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 = newUsers('Miguel', 'Admin');
71
+
$user2 = newUsers('Maria', 'user');
72
+
$userBD = newUsersBD('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";
0 commit comments