Passed
Push — main ( c1cea3...1d91de )
by Osvaldo
13:30
created

SelectWhereOrderBy::crear()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 22
Code Lines 14

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 14
c 1
b 0
f 0
nc 1
nop 1
dl 0
loc 22
rs 9.7998
1
<?php
2
namespace src\factory;
3
4
use src\FactoryClassInterface;
5
use src\pdodatabase\conexion\CrearConexionBaseDeDatos;
6
use src\pdodatabase\consultas\select\ConsultaSelectWhereOrdenOLimite;
7
use src\pdodatabase\ejecutar\EjecutarConsultaConDatos;
8
use src\pdodatabase\elementos\Campos;
9
use src\pdodatabase\elementos\CamposYTabla;
10
use src\pdodatabase\elementos\Como;
11
use src\pdodatabase\elementos\Orden;
12
use src\pdodatabase\elementos\Tabla;
13
use src\pdodatabase\elementos\ValidadorDeParametrosWhere;
14
use src\pdodatabase\elementos\Where;
15
use src\pdodatabase\sentencias\select\SentenciaSelectWhereOrdenOLimite;
16
17
class SelectWhereOrderBy implements FactoryClassInterface
18
{
19
    public function crear(array $array): ConsultaSelectWhereOrdenOLimite
20
    {
21
        $conexion = new CrearConexionBaseDeDatos;
22
        $conexion = $conexion->crear([]);
23
24
        return new ConsultaSelectWhereOrdenOLimite(
25
            new EjecutarConsultaConDatos(
26
                $conexion
27
            ),
28
            new SentenciaSelectWhereOrdenOLimite(
29
                new CamposYTabla(
30
                    new Campos($array['campos']),
31
                    new Tabla($array['tabla'])
32
                ),
33
                new Como(
34
                    new Where(
35
                        new ValidadorDeParametrosWhere(
36
                            $array['where']
37
                        )
38
                    )
39
                ),
40
                new Orden($array['order'])
41
            )
42
        );
43
    }
44
}