Passed
Push — main ( f2df15...8d7bb5 )
by Osvaldo
09:13
created

ConexionBaseDeDatos   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 34
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 15
c 0
b 0
f 0
dl 0
loc 34
rs 10
wmc 3

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 12 1
A conectar() 0 13 2
1
<?php
2
namespace src\pdodatabase\conexion;
3
4
use src\excepciones\ConexionABaseDeDatosException;
5
use PDO;
6
use PDOException;
7
8
class ConexionBaseDeDatos
9
{
10
    private $_hostBaseDeDatos;
11
    private $_baseDeDatos;
12
    private $_usuarioBaseDeDatos;
13
    private $_contraseñaBaseDeDatos;
14
15
    public function __construct
16
    (
17
        HostBaseDeDatos $HostBaseDeDatos,
18
        BaseDeDatos $BaseDeDatos,
19
        UsuarioBaseDeDatos $UsuarioBaseDeDatos,
20
        ContraseñaBaseDeDatos $ContraseñaBaseDeDatos
21
    )
22
    {
23
        $this->_hostBaseDeDatos = $HostBaseDeDatos;
24
        $this->_baseDeDatos = $BaseDeDatos;
25
        $this->_usuarioBaseDeDatos = $UsuarioBaseDeDatos;
26
        $this->_contraseñaBaseDeDatos = $ContraseñaBaseDeDatos;
27
    }
28
29
    public function conectar(): PDO
30
    {
31
        try
32
		{
33
			$this->_pdo = new PDO('mysql:host='.$this->_hostBaseDeDatos->hostBaseDeDatos().';dbname='.$this->_baseDeDatos->baseDeDatos().';chartset=utf8mb4',$this->_usuarioBaseDeDatos->usuarioBaseDeDatos(),$this->_contraseñaBaseDeDatos->contraseñaBaseDeDatos());
0 ignored issues
show
Bug Best Practice introduced by
The property _pdo does not exist. Although not strictly required by PHP, it is generally a best practice to declare properties explicitly.
Loading history...
34
			$this->_pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
35
		}
36
		catch(PDOException)
37
		{
38
			throw new ConexionABaseDeDatosException("Error al conectar con base de datos");
39
		}
40
41
        return $this->_pdo;
42
    }
43
}