Skip to content
This repository has been archived by the owner on Oct 10, 2023. It is now read-only.

phpdoc modelobase

Gabriel edited this page Sep 14, 2021 · 10 revisions

\modeloBase

Clase base de \modelo. Separamos la funcionalidad de la siguiente forma simplemente para una mejor organización y claridad del código: modeloBase Clase con las propiedades y métodos más generales del modelo de datos. modelo Clase que extienden las clases concretas del modelo de la aplicación con los métodos útiles que implementan los métodos generales de modeloBase en formas específicas, como donde(), dondeNo(), etc.

Métodos

__construct([$bd,$nombre,$tipoEntidad,$tabla])

Constructor.

Parámetro Tipo Descripción Opcional Predeterminado
$bd \datos\bd Instancia de la base de datos a utilizar. Opcional; si se omite, se utilizará la instancia global. Si null
$nombre string Nombre del modelo de datos. Parámetro de uso interno (normalmente debe omitirse). Si null
$tipoEntidad string Nombre completo del tipo de las entidades. Parámetro de uso interno (normalmente debe omitirse). Si null
$tabla string Nombre de la tabla (normalmente debe omitirse). Si null

fabricarEntidad([$valores])

Devuelve una nueva instancia de las entidades de este modelo.

Parámetro Tipo Descripción Opcional Predeterminado
$valores object|array Valores a asignar. Si null

Devuelve: \entidadBase

fabricarModeloCampo($campo) (protegido)

Fabrica el modelo de datos correspondiente a un campo relacional.

Parámetro Tipo Descripción Opcional Predeterminado
$campo object Parámetros del campo a evaluar.

Devuelve: \modeloBase

obtenerTabla()

Devuelve el nombre de la tabla o esquema.
Devuelve: string

obtenerNombre()

Devuelve el nombre del modelo.
Devuelve: string

obtenerCampos()

Devuelve los campos de las entidades.
Devuelve: object

obtenerAlias()

Devuelve el alias.
Devuelve: string

establecerAlias($alias)

Establece el alias.

Parámetro Tipo Descripción Opcional Predeterminado
$alias

Devuelve: \modeloBase

obtenerCantidad()

Devuelve la cantidad de filas seleccionadas o afectadas en la última consulta.
Devuelve: int|null

obtenerId()

Devuelve el ID del último registro insertado o actualizado.
Devuelve: int|null

obtenerIdInsertado()

Devuelve el ID del último registro insertado.
Devuelve: int|null

reiniciar()

Reinicia la instancia para construir una nueva consulta.
Devuelve: \modeloBase

obtenerOcultos([$activar])

Establece que se deben asignar los campos ocultos.

Parámetro Tipo Descripción Opcional Predeterminado
$activar bool Activar o desactivar este parámetro. Si true

Devuelve: \modeloBase

omitirRelaciones([$omitir])

Establece que se deben omitir todos los campos relacionales.

Parámetro Tipo Descripción Opcional Predeterminado
$omitir bool Activar o desactivar este comportamiento. Si true

Devuelve: \modeloBase

omitirRelaciones1N([$omitir])

Establece que se deben omitir los campos relacionales tipo 1:n.

Parámetro Tipo Descripción Opcional Predeterminado
$omitir bool Activar o desactivar este comportamiento. Si true

Devuelve: \modeloBase

seleccionarEliminados([$activar])

Establece que se deben incluir en la selección los registros con baja lógica.

Parámetro Tipo Descripción Opcional Predeterminado
$activar bool Activar o desactivar este parámetro. Si true

Devuelve: \modeloBase

forzarRelaciones(...$campos)

Establece que se debe forzar el procesamiento de determinados campos relacionales, aunque las relaciones estén desactivadas. Este parámetro afecta únicamente las consultas de selección.

Parámetro Tipo Descripción Opcional Predeterminado
...$campos string Nombres de los campos.

Devuelve: \modeloBase

eliminarRelacionados([$activar])

Establece que se deben eliminar los registros de las tablas foráneas cuando las relaciones se eliminen.

Parámetro Tipo Descripción Opcional Predeterminado
$activar bool Activar o desactivar este parámetro. Si true

Devuelve: \modeloBase

obtenerEntidad()

Devuelve la entidad actual.
Devuelve: \entidadBase

relacionarValoresPublicos([$activar])

Establece si las entidades relacionadas se deben, o no, asumir públicos los datos asignados a los campos relacionales. Esto significa que, si está activado, los campos se asignarán siempre mediante establecerValoresPublicos(), o mediante establecerValores() en caso contrario.

Parámetro Tipo Descripción Opcional Predeterminado
$activar bool|null Activa o desactiva este comportamiento, o si es null lo mantiene en automático (se activa si en algún punto es invocado establecerValoresPublicos()). Si true

Devuelve: \modeloBase

valorRelacionesValoresPublicos()

Devuelve la configuración actual sobre relacionar con valores públicos únicamente (ver relacionarValoresPublicos()).
Devuelve: bool|null

abrirGrupo([$union])

Abre un grupo de condiciones o paréntesis.

Parámetro Tipo Descripción Opcional Predeterminado
$union int Unión con la condición anterior, modeloBase::y (AND), modeloBase::o (OR), modeloBase::ox (XOR). Si self::y

Devuelve: \modeloBase

cerrarGrupo()

Cierra un grupo de condiciones o paréntesis.
Devuelve: \modeloBase

seleccionar(...$campos)

Establece los campos a seleccionar.

Parámetro Tipo Descripción Opcional Predeterminado
...$campos string Nombres de los campos.

Devuelve: \modeloBase

limite($origen[,$b])

Establece el límite.

Parámetro Tipo Descripción Opcional Predeterminado
$origen int Origen o registro inicial, comenzando desde 0.
$b int Cantidad. Si null

Devuelve: \modeloBase

Sobrecarga 2: limite($cantidad)

Establece el límite.

Parámetro Tipo Descripción Opcional Predeterminado
$cantidad int Cantidad.

Devuelve: \modeloBase

ordenar($campo[,$sentido])

Establece el ordenamiento.

Parámetro Tipo Descripción Opcional Predeterminado
$campo string Nombre del campo. Si se omite el alias, se asume campo de este modelo.
$sentido string|null Sentido ('asc' o 'desc'). Si null

Devuelve: \modeloBase

agrupar($campo)

Establece el agrupamiento (GROUP BY).

Parámetro Tipo Descripción Opcional Predeterminado
$campo string Nombre del campo. Si se omite el alias, se asume campo de este modelo.

Devuelve: \modeloBase

establecerValores($valores[,$reemplazar,$soloPublicos])

Establece los valores para la operación de inserción o actualización. Solo se considerarán aquellas propiedades cuyo valor no sea null (además de ser válidas).

Parámetro Tipo Descripción Opcional Predeterminado
$valores object|array|\entidadBase Valores como objeto, array asociativo o instancia de una entidad. Cuando se especifique una instancia de la entidad, siempre se reemplazarán los valores previos (independientemente del valor de $reemplazar).
$reemplazar bool Si es false, actualizará los valores asignados previamente. Si false
$soloPublicos bool Si es true, únicamente se procesarán los campos públicos (es decir, que presenten @publico). Si false

Devuelve: \modeloBase

asignarPropiedades($valores,...$nombres)

Asigna propiedades que no son campos de la base de datos en la instancia de la entidad con la que se está trabajando actualmente.

Parámetro Tipo Descripción Opcional Predeterminado
$valores object|array|\entidadBase Valores como objeto, array asociativo o instancia de una entidad.
...$nombres string Listado de nombres de propiedades a asignar. Solo se tomarán estas propiedades, si están presentes, desde $valores.

Devuelve: \modeloBase

establecerValoresPublicos($valores[,$reemplazar])

Establece los valores para la operación de inserción o actualización, considerando únicamente los campos que sean válidos, públicos (es decir, que presenten @publico) y cuyo valor no sea null. Este método debe utilizarse cuando se reciban valores desde el cliente. Nótese que, a diferencia de establecerValores(), si se especifica una instancia de una entidad, solo se tomarán sus valores (no se preservará la instancia provista).

Parámetro Tipo Descripción Opcional Predeterminado
$valores object|array|\entidadBase Valores como objeto, array asociativo o instancia de una entidad.
$reemplazar bool Si es false, actualizará los valores asignados previamente. Si false

Devuelve: \modeloBase

obtenerListado([$comoObjetoEstandar])

Ejecuta la consulta y devuelve un listado de resultados. Nótese que si la consulta falla o no hay coincidencias, devolverá siempre un array vacío.

Parámetro Tipo Descripción Opcional Predeterminado
$comoObjetoEstandar bool Si es true, devolverá objetos estándar en lugar de instancias de la entidad. Si false

Devuelve: array

obtenerUno([$comoObjetoEstandar])

Ejecuta la consulta y devuelve un único registro, o null.

Parámetro Tipo Descripción Opcional Predeterminado
$comoObjetoEstandar bool Si es true, devolverá un objeto estándar en lugar de una instancia de la entidad. Si false

Devuelve: object|\entidadBase

obtenerItem($id[,$comoObjetoEstandar])

Busque y devuelve el registro de ID $id, o null. Nótese que la búsqueda se combinará con otras condiciones preexistentes.

Parámetro Tipo Descripción Opcional Predeterminado
$id int ID a buscar.
$comoObjetoEstandar bool Si es true, devolverá un objeto estándar en lugar de una instancia de la entidad. Si false

Devuelve: object|\entidadBase

obtenerResultado()

Ejecuta la consulta y devuelve el resultado crudo.
Devuelve: \datos\resultado

preparar([$operacion])

Prepara la consulta.

Parámetro Tipo Descripción Opcional Predeterminado
$operacion int Operación a realizar (modeloBase::seleccionar, modeloBase::actualizar, modeloBase::crear, modeloBase::eliminar, modeloBase::contar). Si self::seleccionar

Devuelve: \modeloBase

reutilizar($parametros)

Establece que se va a reutilizar la consulta preparada con nuevos parámetros.

Parámetro Tipo Descripción Opcional Predeterminado
$parametros array|object|\entidadBase Nuevos valores a asignar.

Devuelve: \modeloBase

bloquear($modo,...$modelos)

Realiza el bloqueo de tablas.

Parámetro Tipo Descripción Opcional Predeterminado
$modo int Modo (modeloBase::soloLectura, modeloBase::lecturaEscritura).
...$modelos string Instancias de los modelos a bloquear, nombres de las tablas o ['nombre de la tabla','alias']. Opcional, si se omite, se realizará el bloqueo de la tabla de esta modelo y de los modelos relacionados hasta el momento. Nótese que el bloqueo se ejecutará inmediatamente (no al realizar la consulta).

Devuelve: \modeloBase

desbloquear()

Desbloquea las tablas. Nótese que se desbloquearán inmediatamente (no luego de realizada la consulta).
Devuelve: \modeloBase

comenzarTransaccion($modo)

Comienza una transacción. Nótese que la transacción comenzará inmediatamente (no al realizar la consulta).

Parámetro Tipo Descripción Opcional Predeterminado
$modo int Modo (modeloBase::soloLectura, modeloBase::lecturaEscritura).

Devuelve: \modeloBase

finalizarTransaccion()

Finaliza la transacción (commit). Nótese que la transacción finalizará inmediatamente (no luego de realizar la consulta).
Devuelve: \modeloBase

descartarTransaccion()

Descarta la transacción (rollback). Nótese que la transacción finalizará inmediatamente (no luego de realizar la consulta).
Devuelve: \modeloBase

estimarCantidad()

Estima y devuelve la cantidad de registros que devolvería una consulta con la configuración actual.
Devuelve: int

actualizar([$id])

Actualiza el o los registros con los valores actualmente asignados.

Parámetro Tipo Descripción Opcional Predeterminado
$id int ID a actualizar. Opcional, si se omite, se utilizará el valor del campo id. Si null

Devuelve: \modeloBase

crear()

Crea el registro con los valores actualemnte asignados.
Devuelve: \modeloBase

eliminar([$id])

Elimina un registro.

Parámetro Tipo Descripción Opcional Predeterminado
$id int ID. Nótese que se combinará con cualquier condición preexistente. Si null

Devuelve: \modeloBase

recuperar([$id])

Recupera (restaura) un registro eliminado.

Parámetro Tipo Descripción Opcional Predeterminado
$id int ID. Nótese que se combinará con cualquier condición preexistente. Si null

Devuelve: \modeloBase

obtenerUltimaConsulta()

Devuelve los detalles de la última consulta ejecutada.
Devuelve: object

obtenerTipo($campo) (protegido)

Devuelve el tipo correspondiente a un campo de la entidad.

Parámetro Tipo Descripción Opcional Predeterminado
$campo object Parámetros del campo a evaluar.

Devuelve: int

agregarCondicion($campo,$operador,$valor[,$union,$tipoCondicion])

Agrega una condición.

Parámetro Tipo Descripción Opcional Predeterminado
$campo string Campo.
$operador mixed Operador de comparación (=, <, <=, >, >=, <>, modeloBase::como, modeloBase::noComo).
$valor mixed Valor a comparar.
$union int Unión con la condición anterior, modeloBase::y (AND), modeloBase::o (OR), modeloBase::ox (XOR). Si self::y
$tipoCondicion int Tipo de condición, modeloBase::donde (WHERE) o modeloBase::teniendo (HAVING). Si self::donde

Devuelve: \modeloBase

agregarCondicionBusqueda($alias,$campo,$valor,$union[,$tipoCondicion])

Agrega una condición para un campo de búsqueda (@busqueda).

Parámetro Tipo Descripción Opcional Predeterminado
$alias string Alias.
$campo string Nombre del campo.
$valor string Valor a buscar.
$union int Unión con la condición anterior, modeloBase::y (AND), modeloBase::o (OR), modeloBase::ox (XOR).
$tipoCondicion int Tipo de condición, modeloBase::donde (WHERE) o modeloBase::teniendo (HAVING). Si self::donde

Devuelve: \modeloBase

agregarCondicionSql($sql[,$parametros,$tipos,$union,$tipo])

Agrega una condición como un fragmento de código SQL.

Parámetro Tipo Descripción Opcional Predeterminado
$sql string Código SQL.
$parametros array Parámetros utilizados en la sentencia, como ['nombre'=>valor]. Si null
$tipos array Tipos de los valores, como ['nombre'=>tipo] (ver constantes constructor::tipo). Opcional; si se omite, se estimarán los tipos automáticamente. Si null
$union int Unión con la condición anterior, modeloBase::y (AND), modeloBase::o (OR), modeloBase::ox (XOR). Si self::y
$tipo int Tipo de condición, modeloBase::donde (WHERE) o modeloBase::teniendo (HAVING). Si condicion::donde

Devuelve: \modeloBase

agregarRelacion($tipo,$modelo,$alias,$campo,$campoForaneo[,$destino])

Agrega una relación con un modelo foráneo.

Parámetro Tipo Descripción Opcional Predeterminado
$tipo int Tipo de relación, relacion::izquierda (LEFT JOIN), relacion::derecha (RIGHT JOIN), relacion::interior (INNER JOIN).
$modelo \modeloBase Instancia del modelo.
$alias string Alias.
$campo string Nombre del campo local.
$campoForaneo string Nombre del campo foráneo.
$destino string Nombre de la propiedad en la que se asignará la entidad foránea (por defecto, será igual al nombrer del modelo). Si null

Devuelve: \modeloBase

agregarRelacionSql($tipo,$modelo,$alias,$condicion[,$parametros,$tipos,$destino])

Agrega una relación cuya condición (ON ...) es un fragmento de código SQL.

Parámetro Tipo Descripción Opcional Predeterminado
$tipo int Tipo de relación, relacion::izquierda (LEFT JOIN), relacion::derecha (RIGHT JOIN), relacion::interior (INNER JOIN).
$modelo \modeloBase Instancia del modelo.
$alias string Alias.
$condicion string Código SQL de la condición.
$parametros array Parámetros utilizados en la sentencia, como ['nombre'=>valor]. Si null
$tipos array Tipos de los valores, como ['nombre'=>tipo] (ver constantes constructor::tipo). Opcional; si se omite, se estimarán los tipos automáticamente. Si null
$destino string Nombre de la propiedad en la que se asignará la entidad foránea (por defecto, será igual al nombrer del modelo). Si null

Devuelve: \modeloBase

ejecutarConsulta() (protegido)

Ejecuta la sentencia construída.
Devuelve: \datos\resultado

agregarTodosLosCampos([$modelo,$alias])

Agrega todos los campos a la próxima operación de selección.

Parámetro Tipo Descripción Opcional Predeterminado
$modelo \modeloBase Modelo del cual extraer el listado de campos. Opcional; si se omite, se asume el modelo actual. Si null
$alias string Alias del modelo. Opcional; si se omite, se obtendrá de $modelo. Si null

Devuelve: \modeloBase

prepararSeleccionPredeterminada() (protegido)

Prepara el constructor para una operación de selección estándar.
Devuelve: \modeloBase

filaAObjeto($fila[,$comoObjetoEstandar,$modelo,$procesarRelaciones,$operacion]) (protegido)

Procesa una fila o registro de resultados.

Parámetro Tipo Descripción Opcional Predeterminado
$fila object Fila.
$comoObjetoEstandar bool Si es false, devolverá una instancia de la entidad. Si false
$modelo \modeloBase Modelo del cual extraer el listado de campos. Opcional; si se omite, se asume el modelo actual. Si null
$procesarRelaciones bool Solo si es true se procesarán los campos relacionales. Si true
$operacion int Operación. Si self::seleccionar

Devuelve: object|\entidadBase

procesarRelacionesSeleccion($comoObjetoEstandar)

Procesa los campos relacionales tras una operación de selección.

Parámetro Tipo Descripción Opcional Predeterminado
$comoObjetoEstandar bool Si es false, devolverá una instancia de la entidad.

Devuelve: object|\entidadBase

construirConsulta($operacion) (protegido)

Finaliza la configuración y construye la consulta. Nótese que por el momento ignora modeloBase::eliminar (todas las bajas son bajas lógicas, que son en realidad actualizaciones del campo e).

Parámetro Tipo Descripción Opcional Predeterminado
$operacion int Operación (modeloBase::seleccionar, etc.).

Devuelve: \modeloBase

agregarRelaciones() (protegido)

Agrega todas las relaciones correspondientes a los campos relacionales de la entidad.
Devuelve: \modeloBase

agregarValores() (protegido)

Agrega todos los valores correspondientes a la entidad asignada.
Devuelve: \modeloBase

construirValorBusqueda($cadena) (protegido)

Construye el valor final a almacenar en una columna de búsqueda.

Parámetro Tipo Descripción Opcional Predeterminado
$cadena string Cadena a procesar.

Devuelve: string

preprocesarRelacionesActualizacionInsercion($operacion) (protegido)

Procesa los campos relacionales previo a ejecutar la consulta.

Parámetro Tipo Descripción Opcional Predeterminado
$operacion int Operación que se realizará en la consulta (modeloBase::seleccionar, etc.).

Devuelve: \modeloBase

procesarRelacionesActualizacionInsercion($operacion) (protegido)

Procesa los campos relacionales postarior a la ejecución de la consulta.

Parámetro Tipo Descripción Opcional Predeterminado
$operacion int Operación que se realizó (modeloBase::seleccionar, etc.).

Devuelve: \modeloBase

procesarRelacionesRecursivamente($modelo,$entidad,$operacion[,$niveles,$nivel]) (protegido)

Procesa las relaciones recursivamente, si corresponde en cada campo (según la etiqueta @recursion).

Parámetro Tipo Descripción Opcional Predeterminado
$modelo \modeloBase
$entidad \entidadBase
$operacion int
$niveles int Si null
$nivel int Si 1

Devuelve: \modeloBase

Clone this wiki locally