PHP Core 1.0

Framework de Programación PHP hecho en Argentina.

Archivo Versión 1.0.0 25/04/2019 Test

Descripción: Gestión de archivos y directorios.

Usar

use PHP\Archivo\Archivo;

Propiedades

private $archivo; // Representa el archivo actual (Object)

Métodos

public function crearDirectorio($directorio); // Crear un directorio
public function eliminarDirectorio($directorio); // Eliminar un directorio
public function listarDirectorio($directorio); // Listar un directorio
public function renombrarDirectorio($directorioAnterior, $directorioNuevo); // Renombrar un directorio
public function moverDirectorio($directorioAnterior, $directorioDestino); // Mover un directorio
public function abrirArchivo($rutaArchivo, $modo); // Abrir un archivo en un modo especifico
public function cerrarArchivo(); // Cerrar el archivo previamente abierto
public function leerArchivo($rutaArchivo); // Leer el contenido de un archivo
public function escribirArchivo($rutaArchivo, $contenido); // Escribir contenido en un archivo
public function apendizarArchivo($rutaArchivo, $contenido); // Apendizar contenido en un archivo
public function eliminarArchivo($rutaArchivo); // Eliminar un archivo
public function copiarArchivo($archivo); // Copiar un archivo
public function renombrarArchivo($archivoAnterior, $archivoNuevo); // Renombrar un archivo
public function moverArchivo($archivoAnterior, $archivoNuevo); // Mover un archivo
public function getEspacioLibre($directorio); // Devolver espacio libre de un directorio
public function getEspacioTotal($directorio); // Devolver espacio total de un directorio
public function getEspacioUsado($directorio); // Devolver espacio usado de un directorio
public function castearBytes($size); // Convertir un número de B a Kb/Mb/Gb
private function renombrar($anterior, $nuevo); // Renombrar archivo o directorio

Ejemplos

// Instancio Archivo
$archivo = new Archivo();

// Directorio
var_dump($archivo->crearDirectorio(FOLDER_UPLOAD."/carpeta"));
var_dump($archivo->renombrarDirectorio(FOLDER_UPLOAD."/carpeta", FOLDER_UPLOAD."/carpeta2"));;
var_dump($archivo->moverDirectorio(FOLDER_UPLOAD."/carpeta2", FOLDER_UPLOAD."/otra/carpeta2"));
var_dump($archivo->eliminarDirectorio(FOLDER_UPLOAD."/otra/carpeta2"));
var_dump($archivo->listarDirectorio(FOLDER_UPLOAD);

// Archivo
var_dump($archivo->escribirArchivo(FOLDER_UPLOAD."/archivo.txt", "Hola"));
var_dump($archivo->apendizarArchivo(FOLDER_UPLOAD."/archivo.txt", "Mundo"));
var_dump($archivo->leerArchivo(FOLDER_UPLOAD."/archivo.txt"));
var_dump($archivo->copiarArchivo(FOLDER_UPLOAD."/archivo.txt"));
var_dump($archivo->renombrarArchivo(FOLDER_UPLOAD."/archivo.txt", FOLDER_UPLOAD."archivo2.txt"));
var_dump($archivo->moverArchivo(FOLDER_UPLOAD."/archivo2.txt", FOLDER_UPLOAD."/carpeta/archivo2.txt"));
var_dump($archivo->eliminarArchivo(FOLDER_UPLOAD."/carpeta/archivo2.txt.txt"));
var_dump($archivo->abrirArchivo(FOLDER_UPLOAD."/archivo.txt"));
var_dump($archivo->cerrarArchivo());

// Utilidades
echo $archivo->getEspacioLibre(FOLDER_UPLOAD)." GB";
echo $archivo->getEspacioTotal(FOLDER_UPLOAD)." GB";
echo $archivo->getEspacioUsado(FOLDER_UPLOAD)." GB";
echo $archivo->castearBytes(453215);

Detalle Métodos

Visibilidad Método Descripción Parametros Retorno
Público crearDirectorio($directorio); Crear un directorio
Público eliminarDirectorio($directorio); Eliminar un directorio
Público listarDirectorio($directorio); Listar un directorio
Público renombrarDirectorio($directorioAnterior, $directorioNuevo); Renombrar un directorio
Público moverDirectorio($directorioAnterior, $directorioDestino); Mover un directorio
Público abrirArchivo($rutaArchivo, $modo); Abrir un archivo en un modo especifico
Público cerrarArchivo(); Cerrar el archivo previamente abierto
Público leerArchivo($rutaArchivo); Leer el contenido de un archivo
Público escribirArchivo($rutaArchivo, $contenido); Escribir contenido en un archivo
Público apendizarArchivo($rutaArchivo, $contenido); Apendizar contenido en un archivo
Público eliminarArchivo($rutaArchivo); Eliminar un archivo
Público copiarArchivo($archivo); Copiar un archivo
Público renombrarArchivo($archivoAnterior, $archivoNuevo); Renombrar un archivo
Público moverArchivo($archivoAnterior, $archivoNuevo); Mover un archivo
Público getEspacioLibre($directorio); Devolver espacio libre de un directorio
Público getEspacioTotal($directorio); Devolver espacio total de un directorio
Público getEspacioUsado($directorio); Devolver espacio usado de un directorio
Público castearBytes($size); Convertir un número de B a Kb/Mb/Gb
Privado renombrar($anterior, $nuevo); Renombrar archivo o directorio

Constantes

Constante Descripción Valor
FOLDER_UPLOAD Carpeta de subida por defecto /var/home/www/html/uploads/

Database Versión 1.1.0 10/05/2017 Test

Descripción: Gestión de conexión y consultas de MYSQL.

Usar

use PHP\Database\Database;

Propiedades

private $conexion; // Conexion MySQL (Object)
private $resultado; // Último Resultado (Array|Boolean)

Métodos

public function conectar($database); // Conectar a la DB
public function desconectar(); // Desconectarse de la DB
public function devolver_afectados(); // Devolver la cantidad de registros afectados
public function devolver_numero_filas(); // Devolver la cantidad de registros listados
public function devolver_id_insertado(); // Devolver el id del último registro insertado
public function ejecutar($consulta); // Ejecutar una consulta.
public function ejecutar_select($consulta); // Ejecutar una consulta y devolver los resultados en un array asociativo
public function escape($string); // Escape string evitando un ataque de MySQL Injection
public function setCommit($bool); // Activar/Desactivar MySQL Commit
public function commit(); // Ejecutar todas las consultas (commit)
public function rollback(); // Volver atrás todas las consultas (rollback)

Ejemplos

Detalle Métodos

Visibilidad Método Descripción Parametros Retorno
Público conectar($database); Conectar a la DB Nombre Database (string)
Público desconectar(); Desconectarse de la DB
Público devolver_afectados(); Devolver la cantidad de registros afectados Nro Registros Afectados (int)
Público devolver_numero_filas(); Devolver la cantidad de registros listados Nro Filas (int)
Público devolver_id_insertado(); Devolver el id del último registro insertado Id Registro Creado (int)
Público ejecutar($consulta); Ejecutar una consulta. Consulta MySQL (string) Estado (bool)
Público ejecutar_select($consulta); Ejecutar una consulta y devolver los resultados en un array asociativo Consulta MySQL (string) Resultados (array) || Nulo (null)
Público escape($string); Escape string evitando un ataque de MySQL Injection Dato (string) Dato (string)
Público setCommit($bool); Activar/Desactivar MySQL Commit
Público commit(); Ejecutar todas las consultas (commit)
Público rollback(); Volver atrás todas las consultas (rollback)

Constantes

Constante Descripción Valor
DB_HOST IP del Servidor MySQL 192.168.0.5
DB_USER Usuario del Servidor MYSQL leandroburgoa
DB_PASS Contraseña del Servidor MySQL 123456
DB_DB Nombre de la base de datos Tickets
DB_PORT Puerto del servidor MYSQL 3306

Excel Versión 1.0.0 07/09/2019 Test

Descripción: Gestión de archivos excels y csv.

Usar

use PHP\Excel\Excel;

Métodos

Ejemplos

Detalle Métodos

Visibilidad Método Descripción Parametros Retorno

Fecha Versión 1.1.0 01/07/2019 Test

Descripción: Gestión de fecha y horas..

Usar

use PHP\Fecha\Fecha;

Métodos

public function getFecha($fechaUtc = "", $convertirTimeZoneUsuario = false); // 03/07/2019
public function getFechayHora($fechaUtc = "", $convertirTimeZoneUsuario = false); // 03/07/2019 21:46:44 
public function getFechaTexto($fechaUtc = "", $convertirTimeZoneUsuario = false); // 3 de Julio de 2019
public function getFechaYHoraTexto($fechaUtc = "", $convertirTimeZoneUsuario = false); // 3 de Julio de 2019 a las 21:46:44
public function getFechaYHoraTextoAlternativa($fechaUtc = "", $convertirTimeZoneUsuario = false); // Jueves 3 de Julio de 2019 a las 21:46:44
public function getAnio($fechaUtc = "", $convertirTimeZoneUsuario = false); // 2019
public function getAnioDosDigitos($fechaUtc = "", $convertirTimeZoneUsuario = false) ; // 19
public function getMes($fechaUtc = "", $convertirTimeZoneUsuario = false) ; // 7
public function getMesDosDigitos($fechaUtc = "", $convertirTimeZoneUsuario = false); // 07
public function getMesTexto($fechaUtc = "", $convertirTimeZoneUsuario = false); // Julio
public function getDia($fechaUtc = "", $convertirTimeZoneUsuario = false) ; // 3
public function getDiaDosDigitos($fechaUtc = "", $convertirTimeZoneUsuario = false); // 03
public function getDiaTexto($fechaUtc = "", $convertirTimeZoneUsuario = false) ; // Miercoles
public function getHoras($fechaUtc = "", $convertirTimeZoneUsuario = false); // 21
public function getMinutos($fechaUtc = "", $convertirTimeZoneUsuario = false); // 46
public function getSegundos($fechaUtc = "", $convertirTimeZoneUsuario = false); // 44
public function getMeridiano($fechaUtc = "", $convertirTimeZoneUsuario = false); // PM
public function getHoraSinSegundos($fechaUtc = "", $convertirTimeZoneUsuario = false) ; // 14:00
public function getHoraConSegundos($fechaUtc = "", $convertirTimeZoneUsuario = false); // 14:00:00
public function getHoraSinSegundosCompleto($fechaUtc = "", $convertirTimeZoneUsuario = false) ; // 14:00 PM
public function getHoraConSegundosCompleto($fechaUtc = "", $convertirTimeZoneUsuario = false); // 14:00:00 PM
public function validarFechaEnRango($fechaDesde, $fechaHasta, $fechaIngresada) ; // Fecha Ingresada este dentro del rango de una fecha mínima y otra máxima
public function validarFechaSuperior($fechaMinima, $fechaIngresada); // Fecha ingresada sea mayor que la fecha maxima
public function validarFechaInferior($fechaMaxima, $fechaIngresada); // Fecha ingresada sea menor que la fecha mínima
public function incrementarFecha($años = false, $meses = false, $dias = false, $horas = false, $minutos = false, $segundos = false, $fechaUtc = "", $convertirTimeZoneUsuario = false); // sdfsdf
public function decrementarFecha($años = false, $meses = false, $dias = false, $horas = false, $minutos = false, $segundos = false, $fechaUtc = "", $convertirTimeZoneUsuario = false); // sdfsdf
public function getDiferenciasEntreFechas($fechaUtc1 = "", $fechaUtc2 = "", $convertirTimeZoneUsuario = false); // Array ( [años] => 1 [meses] => 2 [dias] => 2 [horas] => 2 [minutos] => 4 [segundos] => 1 [diasTotal] => 427 [signo] => + )
public function getMeses(); // Devuelve un array con los meses del año
public function getDias(); // Devuelve un array con los dias del año
public function getEstaciones() ; // Devuelve un array con las estaciones del año
public function getSegmentos(); // Devuelve un array con los segmentos de un día
public function setTimeZone($timeZone); // Setea una zona horaria
public function getTimeZone(); // Devuelve la zona horaria actual
public function listTimeZone(); // Devuelve un array con las zonas horarias disponibles en el servidor
public function setTimeZoneUserInCookie($timeZoneOffsetMinutes); // Setea la zona horaria del usuario (revisar esto)

Ejemplos

// Instancio Fecha
$fecha = new Fecha();

// Fecha Texto
echo $fecha->getFechaTexto("", true); // 31 de Marzo de 2020
echo $fecha->getFechaTexto("2019-07-03 21:46:44", true); // 3 de Julio de 2019

// Validaciones
echo $fecha->validarFechaEnRango("2019-01-01", "2019-12-31", "2019-08-01"); // true
echo $fecha->validarFechaSuperior("2019-01-01", "2019-08-01"); // true
echo $fecha->validarFechaInferior("2019-12-01", "2019-08-01"); // true

// Incrementar y Decrementar
echo $fecha->incrementarFecha($años = false, $meses = false, $dias = false, $horas = false, $minutos = 10, $segundos = false, "2019-08-01 01:46:44", false); // 01/08/2019 01:56:44
echo $fecha->decrementarFecha($años = false, $meses = false, $dias = false, $horas = false, $minutos = 10, $segundos = false, "2019-08-01 01:46:44", false); // 01/08/2019 01:36:44

// Diferencia Entre Fechas
print_r($fecha->getDiferenciasEntreFechas("2019-01-01 01:46:44", "2020-03-03 03:50:45")); // Array ( [años] => 1 [meses] => 2 [dias] => 2 [horas] => 2 [minutos] => 4 [segundos] => 1 [diasTotal] => 427 [signo] => + ) 

// Time Zone
echo $fecha->getTimeZone(); // UTC
$fecha->setTimeZone("America/Argentina/Buenos_Aires");
//print_r($fecha->listTimeZone()); // Array

// Arrays (Iniciar Idioma)
print_r($fecha->getMeses()); // Array ( [0] => Enero [1] => Febrero [2] => Marzo [3] => Abril [4] => Mayo [5] => Junio [6] => Julio [7] => Agosto [8] => Septiembre [9] => Octubre [10] => Noviembre [11] => Diciembre )
print_r($fecha->getDias()); // Array ( [0] => Lunes [1] => Martes [2] => Miercoles [3] => Jueves [4] => Viernes [5] => Sabado [6] => Domingo ) 
print_r($fecha->getEstaciones()); // Array ( [0] => Verano [1] => Otoño [2] => Invierno [3] => Primavera ) 

Detalle Métodos

Visibilidad Método Descripción Parametros Retorno
Público getFecha($fechaUtc = "", $convertirTimeZoneUsuario = false); 03/07/2019
Público getFechayHora($fechaUtc = "", $convertirTimeZoneUsuario = false); 03/07/2019 21:46:44
Público getFechaTexto($fechaUtc = "", $convertirTimeZoneUsuario = false); 3 de Julio de 2019
Público getFechaYHoraTexto($fechaUtc = "", $convertirTimeZoneUsuario = false); 3 de Julio de 2019 a las 21:46:44
Público getFechaYHoraTextoAlternativa($fechaUtc = "", $convertirTimeZoneUsuario = false); Jueves 3 de Julio de 2019 a las 21:46:44
Público getAnio($fechaUtc = "", $convertirTimeZoneUsuario = false); 2019
Público getAnioDosDigitos($fechaUtc = "", $convertirTimeZoneUsuario = false) ; 19
Público getMes($fechaUtc = "", $convertirTimeZoneUsuario = false) ; 7
Público getMesDosDigitos($fechaUtc = "", $convertirTimeZoneUsuario = false); 07
Público getMesTexto($fechaUtc = "", $convertirTimeZoneUsuario = false); Julio
Público getDia($fechaUtc = "", $convertirTimeZoneUsuario = false) ; 3
Público getDiaDosDigitos($fechaUtc = "", $convertirTimeZoneUsuario = false); 03
Público getDiaTexto($fechaUtc = "", $convertirTimeZoneUsuario = false) ; Miercoles
Público getHoras($fechaUtc = "", $convertirTimeZoneUsuario = false); 21
Público getMinutos($fechaUtc = "", $convertirTimeZoneUsuario = false); 46
Público getSegundos($fechaUtc = "", $convertirTimeZoneUsuario = false); 44
Público getMeridiano($fechaUtc = "", $convertirTimeZoneUsuario = false); PM
Público getHoraSinSegundos($fechaUtc = "", $convertirTimeZoneUsuario = false) ; 14:00
Público getHoraConSegundos($fechaUtc = "", $convertirTimeZoneUsuario = false); 14:00:00
Público getHoraSinSegundosCompleto($fechaUtc = "", $convertirTimeZoneUsuario = false) ; 14:00 PM
Público getHoraConSegundosCompleto($fechaUtc = "", $convertirTimeZoneUsuario = false); 14:00:00 PM
Público validarFechaEnRango($fechaDesde, $fechaHasta, $fechaIngresada) ; Fecha Ingresada este dentro del rango de una fecha mínima y otra máxima
Público validarFechaSuperior($fechaMinima, $fechaIngresada); Fecha ingresada sea mayor que la fecha maxima
Público validarFechaInferior($fechaMaxima, $fechaIngresada); Fecha ingresada sea menor que la fecha mínima
Público incrementarFecha($años = false, $meses = false, $dias = false, $horas = false, $minutos = false, $segundos = false, $fechaUtc = "", $convertirTimeZoneUsuario = false); sdfsdf
Público decrementarFecha($años = false, $meses = false, $dias = false, $horas = false, $minutos = false, $segundos = false, $fechaUtc = "", $convertirTimeZoneUsuario = false); sdfsdf
Público getDiferenciasEntreFechas($fechaUtc1 = "", $fechaUtc2 = "", $convertirTimeZoneUsuario = false); Array ( [años] => 1 [meses] => 2 [dias] => 2 [horas] => 2 [minutos] => 4 [segundos] => 1 [diasTotal] => 427 [signo] => + )
Público getMeses(); Devuelve un array con los meses del año Meses (Array)
Público getDias(); Devuelve un array con los dias del año Dias (Array)
Público getEstaciones() ; Devuelve un array con las estaciones del año Estaciones (Array)
Público getSegmentos(); Devuelve un array con los segmentos de un día Segmentos (Array)
Público setTimeZone($timeZone); Setea una zona horaria Timezone (String)
Público getTimeZone(); Devuelve la zona horaria actual Timezone (String)
Público listTimeZone(); Devuelve un array con las zonas horarias disponibles en el servidor Timezones (Array)
Público setTimeZoneUserInCookie($timeZoneOffsetMinutes); Setea la zona horaria del usuario (revisar esto) Minutos (Int)

Constantes

Constante Descripción Valor
TIMEZONE_DEFAULT Time zone por defecto America/Argentina/Buenos_Aires

Formulario Versión 1.0.0 07/09/2019 Test

Descripción: Generador de Formularios HTML.

Usar

use PHP\Formulario\Formulario;

Métodos

Ejemplos

Detalle Métodos

Visibilidad Método Descripción Parametros Retorno

Idioma Versión 1.0.0 26/06/2019 Test

Descripción: Gestión de idiomas e internalización..

Usar

use PHP\Idioma\Idioma;

Métodos

public function getIdiomaNavegador(); // Obtiene el codigo del lenguaje del navegador (ejemplo: ES, UN)
public function setIdiomaUsuario($codigoIdioma); // Setea el idioma del usuario en $_SESSION["idioma"]. Si no existe, setea el idioma default (ES). Luego ejecuta cargarJsonIdioma()
public function cargarJsonIdioma(); // Carga en $_SESSION["textos"] los textos del idioma elegido/default en $_SESSION["idioma"] leyendo el archivo de traducciones (es.json)
public function getTexto($clave); // Devuelve de $_SESSION["textos"] el texto a mostrar según la clave solicitada. Si no existe, busca la clave en el idioma default. Si tampoco existe, devuelve un string vacio y logea el error en el sistema
public function getTextos(); // Devuelve un array asociativo con todos los textos de todos los idiomas
public function getIdiomas(); // Devuelve un array asociativo con todos los idiomas
public function iniciar(); // Inicializa la funcionalidad seteando el idioma del usuario según el idioma del navegador y luego cargando en $_SESSION los textos (ejecuta setIdiomaUsuario con getIdiomaNavegador como parametro)
public function insertarIdioma($idioma, $codigo); // Inserta un nuevo idioma (codigo y nombre) en el archivo idiomas.json y crea el archivo de traducciones (es.json)
public function eliminarIdioma($codigo); // Elimina el idioma del archivo idiomas.json y elimina el archivo de traducciones (es.json)
public function modificarIdioma($codigoAnterior, $codigoNuevo, $idiomaNuevo); // Modifica el idioma (codigo y nombre) del archivo idiomas.json
public function insertarTexto(); // Pendiente!
public function eliminarTexto(); // Pendiente!
public function modificarTexto(); // Pendiente!

Ejemplos

// Instancio Idioma
$idioma = new Idioma();

// Get Idioma Navegador
$codigo = $idioma->getIdiomaNavegador(); // "ES"

// Set Idioma Usuario
$idioma->setIdiomaUsuario($codigo); // Estos dos pasos se podria evitar ejecutando "$idioma->iniciar()" 
//$idioma->setIdiomaUsuario("EN");  // Se puede setear el idioma del usuario recuperando el valor por $_POST ;)

// Get Textos
$textos = $idioma->getTextos(); // [ "bienvenido" => "Bienvenido", "hola" => "Hola"]

// Get Texto (método principal! ;)
echo $idioma->getTexto("bienvenido"); // "Bienvenido"

// Get Idiomas
$idiomas = $idioma->getIdiomas(); // [ "es" => "Español", "en" => "English"]

/* ABM Idioma */

// Insertar Idioma
$idioma->insertarIdioma("Portugues", "pt");

// Modificar Idioma
//$idioma->modificarIdioma("pt", "pt", "Portugués");

// Eliminar Idioma
//$idioma->eliminarIdioma("pt");

/* Abm Textos */

// Pendientes

Detalle Métodos

Visibilidad Método Descripción Parametros Retorno
Público getIdiomaNavegador(); Obtiene el codigo del lenguaje del navegador (ejemplo: ES, UN) Codigo Idioma (String)
Público setIdiomaUsuario($codigoIdioma); Setea el idioma del usuario en $_SESSION["idioma"]. Si no existe, setea el idioma default (ES). Luego ejecuta cargarJsonIdioma() Codigo Idioma (String)
Público cargarJsonIdioma(); Carga en $_SESSION["textos"] los textos del idioma elegido/default en $_SESSION["idioma"] leyendo el archivo de traducciones (es.json)
Público getTexto($clave); Devuelve de $_SESSION["textos"] el texto a mostrar según la clave solicitada. Si no existe, busca la clave en el idioma default. Si tampoco existe, devuelve un string vacio y logea el error en el sistema Clave (String) Texto (String)
Público getTextos(); Devuelve un array asociativo con todos los textos de todos los idiomas Textos de idiomas (Array)
Público getIdiomas(); Devuelve un array asociativo con todos los idiomas Idiomas (Array)
Público iniciar(); Inicializa la funcionalidad seteando el idioma del usuario según el idioma del navegador y luego cargando en $_SESSION los textos (ejecuta setIdiomaUsuario con getIdiomaNavegador como parametro)
Público insertarIdioma($idioma, $codigo); Inserta un nuevo idioma (codigo y nombre) en el archivo idiomas.json y crea el archivo de traducciones (es.json) Nombre Idioma (String), Codigo Idioma (String)
Público eliminarIdioma($codigo); Elimina el idioma del archivo idiomas.json y elimina el archivo de traducciones (es.json) Codigo Idioma (String)
Público modificarIdioma($codigoAnterior, $codigoNuevo, $idiomaNuevo); Modifica el idioma (codigo y nombre) del archivo idiomas.json Codigo Idioma Anterior (String), Codigo Idioma Nuevo (String), Nombre Idioma Nuevo (String)
Público insertarTexto(); Pendiente!
Público eliminarTexto(); Pendiente!
Público modificarTexto(); Pendiente!

Constantes

Constante Descripción Valor
IDIOMA_DEFAULT Idioma por defecto ES

Lista Versión 1.0.0 27/02/2019 Test

Descripción: Generador de Listas HTML..

Usar

use PHP\Lista\Lista;

Propiedades

private $list; // Clase de Lista, ejemplo: ul, ol (String)
private $type; // Tipo de Lista, ejemplo: disc, square, circle (String)
private $items; // Elementos de la lista. (Array)
private $id; // Id de la lista (String)
private $class; // Clase de la lista (String)

Métodos

public function setList($list); // Setea la lista (ul, ol)
public function setType($type) ; // Setea el tipo (disc, square, circle)
public function addItem($item); // Añade item
public function deleteItems(); // Elimina todos los items
public function getTotalItems(); // Devuelve total de items
public function getHTML(); // Devuelve codigo HTML
public function setId($id); // Setea id
public function setClass($class); // Setea clase
public function getId(); // Devuelve id
public function getClass(); // Devuelve clase

Ejemplos

// Instancio Lista
$lista = new Lista(UL, SQUARE, ["Tarea 1", "Tarea 2"]);

// Seteo Clase
$lista->setClass("menu");

// Seteo Id
$lista->setId("lista_tareas");

// Elimino Items
//$lista->deleteItems();

// Añado Item
$lista->addItem("Tarea 3");
$lista->addItem("Tarea 4");

// Imprimo HTML
echo $lista->getHTML();

// Imprimo Total
echo "Total: " . $lista->getTotalItems();

Detalle Métodos

Visibilidad Método Descripción Parametros Retorno
Público setList($list); Setea la lista (ul, ol) Lista (String)
Público setType($type) ; Setea el tipo (disc, square, circle) Tipo (String)
Público addItem($item); Añade item Item (String)
Público deleteItems(); Elimina todos los items
Público getTotalItems(); Devuelve total de items Total (Int)
Público getHTML(); Devuelve codigo HTML Codigo (String)
Público setId($id); Setea id Id (String)
Público setClass($class); Setea clase Clase (String)
Público getId(); Devuelve id Id (String)
Público getClass(); Devuelve clase Clase (String)

Log Versión 1.0.0 11/04/2019 Test

Descripción: Sistema de registro de eventos con niveles y soportes.

Usar

use PHP\Log\Log;

Métodos

public function debug($mensaje); // Nivel 1: Depuración
public function info($mensaje); // Nivel 2: Información
public function notice($mensaje); // Nivel 3: Noticia
public function warning($mensaje); // Nivel 4: Advertencia
public function error($mensaje); // Nivel 5: Error
public function critical($mensaje); // Nivel 6: Critico
public function alert($mensaje); // Nivel 7: Alerta
public function emergency($mensaje); // Nivel 8: Emergencia

Ejemplos

// Instancio Log
$log = new Log();

// Log Según Niveles
$log->debug($consulta);
$log->info("Restauración: se realizo con exito.");
$log->notice("Administrador: Se inserto un registro.");
$log->warning("Almacenamiento: Espacio al 80% ocupado.");
$log->error("Query: No se pudo ejecutar la consulta.");
$log->critical("Backup: No se pudo realizar el backup diario.");
$log->alert("Email: Error de autenticación.");
$log->emergency("MySQL: Error de conexión.");

Detalle Métodos

Visibilidad Método Descripción Parametros Retorno
Público debug($mensaje); Nivel 1: Depuración Mensaje (String)
Público info($mensaje); Nivel 2: Información Mensaje (String)
Público notice($mensaje); Nivel 3: Noticia Mensaje (String)
Público warning($mensaje); Nivel 4: Advertencia Mensaje (String)
Público error($mensaje); Nivel 5: Error Mensaje (String)
Público critical($mensaje); Nivel 6: Critico Mensaje (String)
Público alert($mensaje); Nivel 7: Alerta Mensaje (String)
Público emergency($mensaje); Nivel 8: Emergencia Mensaje (String)

Constantes

Constante Descripción Valor
LOG_ACTIVE Si el log se encuentra activo TRUE
LOG_FILE_PATH Ruta donde se guardan los archivos /var/www/html/logs/
LOG_FILE_SPLIT_LEVEL Si se dividen los archivos por niveles false
LOG_FILE_PERIOD Periodo en que se dividen los archivos (DAY, MONTH, YEAR, ALL) MONTH
LOG_TABLE Nombre de la tabla MySQL Log
LOG_EMAIL Email de destino leandroburgoa@gmail.com
LOG_SMS Telefono de destino 5401132590997
LOG_MIN_LEVEL Nivel minimo que se debe logear LogLevel::INFO
LOG_SUPPORTS Soportes en que se deben logear [LogSupport::DATABASE, LogSupport::FILE]
LOG_SUPPORT_LEVEL Según el nivel, en que soportes logear (pendiente) [LogLevel::EMERGENCY => [LogSupport::SMS], LogLevel::ALERT => [LogSupport::SMS], LogLevel::CRITICAL => [LogSupport::SMS], LogLevel::ERROR => [LogSupport::EMAIL], LogLevel::WARNING => [LogSupport::FILE], LogLevel::NOTICE => [LogSupport::FILE], LogLevel::INFO => [LogSupport::FILE], LogLevel::DEBUG => [LogSupport::FILE] ]

Migracion Versión 1.0.0 26/04/2019 Test

Descripción: Migración de Base De Datos.

Usar

use PHP\Migracion\Migracion;

Métodos

public function listarScripts(); // Lista scripts de carpeta /scripts 
public function listarScriptsPendientes(); // Lista scripts pendientes de carpeta /scripts 
public function listarMigraciones(); // Lista migraciones de tabla Migracion
public function insertarMigracion($nombreArchivo, $scriptArchivo, $ejecutado); // Inserta un nuevo registro en la tabla Migración
public function ejecutarMigracionesPendientes(); // Ejecuta scripts pendientes y luego los inserta en la tabla
public function crearScript($titulo, $script); // Crea script en la carpeta /scripts 
public function eliminarBase(); // Crítico: Elimina la base de datos
public function reestablecerBase(); // Crítico: Elimina la base de datos y ejecuta migraciones pendientes

Ejemplos

Detalle Métodos

Visibilidad Método Descripción Parametros Retorno
Público listarScripts(); Lista scripts de carpeta /scripts Scripts (Array)
Público listarScriptsPendientes(); Lista scripts pendientes de carpeta /scripts Scripts Pendientes (Array)
Público listarMigraciones(); Lista migraciones de tabla Migracion Migraciones (Array)
Público insertarMigracion($nombreArchivo, $scriptArchivo, $ejecutado); Inserta un nuevo registro en la tabla Migración Archivo Nombre (String), Script MySQL (String) Ejecutado (Boolean)
Público ejecutarMigracionesPendientes(); Ejecuta scripts pendientes y luego los inserta en la tabla
Público crearScript($titulo, $script); Crea script en la carpeta /scripts Titulo Migración (String), Script MySQL (String)
Público eliminarBase(); Crítico: Elimina la base de datos
Público reestablecerBase(); Crítico: Elimina la base de datos y ejecuta migraciones pendientes

Constantes

Constante Descripción Valor
FOLDER_SCRIPTS Carpeta donde se almacen los scripts MySQL /var/home/www/html/sql/
DB_DB Nombre de la base de datos Tickets

PasswordStrong Versión 1.0.0 06/08/2019 Test

Descripción: Calculador de Nivel de Seguridad de Contraseña.

Usar

use PHP\PasswordStrong\PasswordStrong;

Propiedades

private $password; // Contraseña (String)
private $requisitos; // Lista de requisitos iniciales (Array)
private $contadores; // Lista de contadores de tipo de caracteres (Array)
private $errores; // Lista de errores de la contraseña (Array)
private $esValida; // Si la contraseña cumplio los requisitos (Boolean)
private $strong; // Nivel de seguridad de la contraseña, del 0 al 100 (Int)

Métodos

public function procesar(); // Procesa y valida el nivel de seguridad
public function getRequisitos(); // Devuelve lista de requisitos
public function getContadores(); // Devuelve lista de contadores de caracteres
public function getErrores(); // Devuelve lista de errores
public function getEsValida(); // Devuelve si es valida
public function getStrong(); // Devuelve nivel de seguridad
private function contarCaracteres(); // Calcula la cantidad de caracteres de la contraseña
private function calcularStrong(); // Calcula el nivel de seguridad de la contraseña
private function validarPassword(); // Valida que la contraseña cumpla con los requisitos

Ejemplos

// Sets de Contraseñas
//$password = "a";
//$password = "aC";
//$password = "abCD";
//$password = "abCD12";
//$password = "abCD12!";
$password = "abCD12!#.*"; // 100%: 2 minusculas, 2 mayusculas, 2 numeros, 4 signos

// Instancio PasswordStrong
$obj = new PasswordStrong($password);

// Get Requisitos
var_dump($obj->getRequisitos());

// Proceso Contraseña
var_dump($obj->procesar());

// Si La Contraseña No Es Valida
if (!$obj->getEsValida()) {

	// Get Errores
	var_dump($obj->getErrores());
}

// Get Strong
var_dump($obj->getStrong());

// Get Contadores
var_dump($obj->getContadores());

Detalle Métodos

Visibilidad Método Descripción Parametros Retorno
Público procesar(); Procesa y valida el nivel de seguridad Valida (Boolean)
Público getRequisitos(); Devuelve lista de requisitos Requisitos (Array)
Público getContadores(); Devuelve lista de contadores de caracteres Contadores (Array)
Público getErrores(); Devuelve lista de errores Errores (Array)
Público getEsValida(); Devuelve si es valida Valida (Boolean)
Público getStrong(); Devuelve nivel de seguridad Nivel (Int)
Privado contarCaracteres(); Calcula la cantidad de caracteres de la contraseña
Privado calcularStrong(); Calcula el nivel de seguridad de la contraseña
Privado validarPassword(); Valida que la contraseña cumpla con los requisitos

Constantes

Constante Descripción Valor
REQUISITOS_DEFAULT Requisitos de la contraseña según tipo de caracter y cantidad del mismo [ "caracteres" => 7, "letras" => 2, "numeros" => 2, "mayusculas" => 1, "minusculas" => 1, "simbolos" => 1 ];

Query Versión 1.0.0 16/01/2020 Test

Descripción: Disparador de Consultas MySQL.

Usar

use PHP\Query\Query;

Propiedades

private $conexion; // Objeto de conexión MySQLi (Object)
private $resultado; // Último resultado que se obtuvo (Array|Int|Boolean)
private $consulta; // Última consulta MYSQL que se ejecutó (String)

Métodos

public function select($table, $where = null, $fields = ["*"], $join = null, $order = null, $limit = null, $offset = null); // Ejecuta una consulta de tipo Select
public function insert($table, $values); // Ejecuta una consulta de tipo Insert
public function update($table, $values, $where); // Ejecuta una consulta de tipo Update
public function delete($table, $where); // Ejecuta una consulta de tipo Delete
public function getConexion(); // Devuelve la conexion MySQLi
public function getResultado(); // Devuelve el último resultado
public function getConsulta(); // Devuelve la última consulta

Ejemplos

/* Select */
print_r(Query::select("TicketCategoria", "id > 1", ["id", "nombre"], null, "nombre ASC", 5, 2));  // table, where-id, fields, join, order, limit, offset
print_r(Query::select("TicketCategoria", "id = 1", ["id", "nombre"]));  // Select id, nombre From TicketCategoria Where id = 1
print_r(Query::select("TicketCategoria", "id > 10")); // Where id > 10
print_r(Query::select("TicketCategoria", 1)); // Where id = 1
print_r(Query::select("TicketCategoria"));

/* Insert */
print_r(Query::insert("TicketCategoria", ["nombre" => "Zapatillas"])); // table, values

/* Update */
print_r(Query::update("TicketCategoria", ["nombre" => "Camisas", "activo" => 1], 1)); // table, values, where-id

/* Delete */
print_r(Query::delete("TicketCategoria", 15)); // table, where-id

/* Gets */
print_r(Query::getConexion()); // Object MySQLi
print_r(Query::getResultado()); // Array|Int Resultado
print_r(Query::getConsulta()); // Query MySQL

Detalle Métodos

Visibilidad Método Descripción Parametros Retorno
Público select($table, $where = null, $fields = ["*"], $join = null, $order = null, $limit = null, $offset = null); Ejecuta una consulta de tipo Select Table (String), Where (Int|String), Fields (Array), Join (String), Order (String), Limit (Int), Offset (Int) Registros (Array)
Público insert($table, $values); Ejecuta una consulta de tipo Insert Table (String), Values (Array) Id Registro Insertado (Int)
Público update($table, $values, $where); Ejecuta una consulta de tipo Update Table (String), Values (Array), Where (Int|String) Registros Afectados (Int)
Público delete($table, $where); Ejecuta una consulta de tipo Delete Table (String), Where (Int|String) Registros Afectados (Int)
Público getConexion(); Devuelve la conexion MySQLi Conexion (Object)
Público getResultado(); Devuelve el último resultado Resultado (Array|Int)
Público getConsulta(); Devuelve la última consulta Consulta (String)

Router Versión 1.0.0 27/02/2019 Test

Descripción: Enrutador de requests hacia una función de un controlador.

Usar

use PHP\Router\Router;

Propiedades

private $requestURL; // URL solicitada por el cliente (String)
private $requestMethod; // Método solicitado por el cliente (String)
private $rutas; // Rutas configuradas en el sistema (Array)
private $controlador; // Controlador y método que se va a ejecutar (String)
private $parametros; // Parametros que se van a enviar al método del controlador (Array)
private $error; // Mensaje de error que produjo el router (String)

Métodos

public function addRuta($verbo, $endpoint, $function); // Añade una ruta específica
public function addRutasControladores($arrayControladores); // Añade un conjunto de rutas preestablecidas de un controlador típico
public function routing(); // Procesa la solicitud del usuario y la encamina al controlador específico
public function debug(); // Devuelve un array con todos los atributos del ruteo (url, method, error, etc)

Ejemplos

// Instancio Router
$router = new Router();

// Agrego Rutas Especificas (method, endpoint, function)
$router->addRuta(GET, 	"/", 							function() { echo "PHP Core"; }	);
$router->addRuta(GET, 	"/usuarios", 			"usuario@index");  // GET a www.servidor.net/usuarios ejecuta método index() de "UsuarioControlador" 
$router->addRuta(GET, 	"/categorias", 		"categoria@index"); // controlador@metodo || function() {}

// Array Controladores
$controladores = [
	"categoria",
	"modulo",
	"pais",
	"idioma",
	"usuario",
];

// Agrego Rutas Básicas Para Controladores (CRUD Típico)
$router->addRutasControladores($controladores);

// AddRutasControladores Crea Las Siguientes Rutas:
/*
$router->addRuta(GET, 		"/categoria", 								"categoria@listarTodos" );
$router->addRuta(GET, 		"/categoria/{id}", 						"categoria@listarUno" 	);
$router->addRuta(POST, 	"/categoria",									"categoria@insertar"	);
$router->addRuta(PUT, 		"/categoria/{id}", 						"categoria@modificar"	);
$router->addRuta(DELETE,	"/categoria/{id}", 					"categoria@eliminar"	);
$router->addRuta(GET, 		"/categoria/log/{id}",					"categoria@listarLog" 	);
$router->addRuta(GET,		"/categoria/exportar/xls", 		"categoria@exportarXLS"	);
$router->addRuta(GET,		"/categoria/exportar/csv", 		"categoria@exportarCSV"	);
$router->addRuta(GET,		"/categoria/exportar/pdf", 		"categoria@exportarPDF"	);
$router->addRuta(GET,		"/categoria/exportar/email", 	"categoria@exportaexportarEmailrXLS" );
$router->addRuta(GET,		"/categoria/exportar/imprimir", "categoria@exportarImprimir" );
*/

// Proceso Request
$router->routing();

Detalle Métodos

Visibilidad Método Descripción Parametros Retorno
Público addRuta($verbo, $endpoint, $function); Añade una ruta específica Verbo (String|Constante), Endpoint (String), Controlador@Metodo (String||Function())
Público addRutasControladores($arrayControladores); Añade un conjunto de rutas preestablecidas de un controlador típico Controladores (Array)
Público routing(); Procesa la solicitud del usuario y la encamina al controlador específico
Público debug(); Devuelve un array con todos los atributos del ruteo (url, method, error, etc) Propiedades (Array)

Constantes

Constante Descripción Valor
GET Método HTTP GET GET
POST Método HTTP POST POST
PUT Método HTTP PUT PUT
DELETE Método HTTP DELETE DELETE

Tabla Versión 1.0.0 27/02/2019 Test

Descripción: Generador de Tablas HTML.

Usar

use PHP\Tabla\Tabla;

Propiedades

private $header; // Encabezado de la tabla (Array)
private $rows; // Filas de la tabla (Array)
private $id; // Id de la tabla (String)
private $class; // Clase de la tabla (String)

Métodos

public function setHeader($header); // Setea el encabezado
public function addRow($row); // Añade una fila
public function deleteAllRows(); // Elimina todas las filas
public function getTotalRows(); // Devuelve el total de filas
public function getHTML(); // Devuelve codigo HTML
public function setId($id); // Setea id
public function setClass($class); // Setea clase
public function getId(); // Devuelve id
public function getClass(); // Devuelve clase

Ejemplos

// Instancio Tabla
$tabla = new Tabla();

// Seteo Id & Class
$tabla->setId("tabla-usuarios");
$tabla->setClass("tabla-dark");

// Seteo Cabecera
$tabla->setHeader(["Nombre", "Pais", "Fecha"]);

// Seteo Fila
$tabla->addRow(["Brenda", "Argentina", "25/02/97"]);

// Elimino Filas
//$tabla->deleteAllRows();

// Seteo Fila
$tabla->addRow(["Leandro","Argentina", "05/06/88"]);

// Instancio Tabla 2
/*$tabla = new Tabla(
	["Id", "Categoria", "Estado"], 
	[
		["1", "Zapatilla", "Activo"],
		["1", "Camisetas", "Inactivo"],
	] // TIP: Puede recibir la respuesta de $obj->listarTodos() ^^
);*/

// Imprimo Tabla 
echo $tabla->getHTML();

// Imprimo Total
echo "Total: ".$tabla->getTotalRows();

Detalle Métodos

Visibilidad Método Descripción Parametros Retorno
Público setHeader($header); Setea el encabezado Encabezado (Array)
Público addRow($row); Añade una fila Fila (Array)
Público deleteAllRows(); Elimina todas las filas
Público getTotalRows(); Devuelve el total de filas Total Filas (Int)
Público getHTML(); Devuelve codigo HTML Codigo (String)
Público setId($id); Setea id Id (String)
Público setClass($class); Setea clase Clase (String)
Público getId(); Devuelve id Id (String)
Público getClass(); Devuelve clase Clase (String)

Texto Versión 1.0.0 09/07/2019 Test

Descripción: Utilidades de Texto.

Usar

use PHP\Texto\Texto;

Métodos

public function generarStringAleatorio($cantidadCaracteres = 8, $tiposCaracteres = [LETRAS, NUMEROS]); // Devuelve un string aleatorio
public function poseeInsulto($texto); // Valida que un texto incluya un insulto en el idioma por defecto
public function getSimbolos(); // Devuelve un array con los caracteres especiales del teclado
public function getNumeros(); // Devuelve un array con los números del 0 al 9
public function getAlfabetoMinusculas(); // Devuelve un array con el alfabeto en minúscula: a-z
public function getAlfabetoMayusculas(); // Devuelve un array con el alfabeto en mayúscula: A-Z
public function getAlfabetoCompleto(); // Devuelve un array con el alfabeto completo: a-z y A-Z

Ejemplos

/* Get Simbolos */
var_dump(Texto::getSimbolos());

/* Get Numeros */
var_dump(Texto::getNumeros());

/* Get Alfabeto */
var_dump(Texto::getAlfabetoMinusculas());
var_dump(Texto::getAlfabetoMayusculas());
var_dump(Texto::getAlfabetoCompleto());

/* Generar String Aleatorio */
echo Texto::generarStringAleatorio(); // Lk7FM4Z4
echo Texto::generarStringAleatorio(10); // cF2T47FA9c
echo Texto::generarStringAleatorio(4, [NUMEROS]); // 2587
echo Texto::generarStringAleatorio(6, [NUMEROS, LETRAS, SIMBOLOS]); // 2a%z&1

/* Validar Insulto */
var_dump(Texto::poseeInsulto("Hola puto")); // true
var_dump(Texto::poseeInsulto("Hola amigo")); // false

Detalle Métodos

Visibilidad Método Descripción Parametros Retorno
Público generarStringAleatorio($cantidadCaracteres = 8, $tiposCaracteres = [LETRAS, NUMEROS]); Devuelve un string aleatorio Cantidad Caracteres (Int), Tipos Caracteres (Array) Texto Aleatorio (String)
Público poseeInsulto($texto); Valida que un texto incluya un insulto en el idioma por defecto Texto (String) Estado (Boolean)
Público getSimbolos(); Devuelve un array con los caracteres especiales del teclado Simbolos (Array)
Público getNumeros(); Devuelve un array con los números del 0 al 9 Numeros (Array)
Público getAlfabetoMinusculas(); Devuelve un array con el alfabeto en minúscula: a-z Alfabeto (Array)
Público getAlfabetoMayusculas(); Devuelve un array con el alfabeto en mayúscula: A-Z Alfabeto (Array)
Público getAlfabetoCompleto(); Devuelve un array con el alfabeto completo: a-z y A-Z Alfabeto (Array)

Constantes

Constante Descripción Valor
LETRAS Caracteres de tipo alfabeticos (abc) letras
NUMEROS Caracteres de tipo numericos (123) numeros
SIMBOLOS Caracteres de tipo simbolos (%$#) simbolos

Upload Versión 1.0.0 15/08/2019 Test

Descripción: Gestion de Subida de Archivos.

Usar

use PHP\Upload\Upload;

Propiedades

private $temporal; // Ubicación temporal del archivo (String)
private $nombre; // Nombre original del archivo (String)
private $tipo; // Tipo del archivo (String)
private $size; // Tamaño del archivo en bytes (Int)
private $error; // Error en la subida de php (Boolean)
private $extension; // Extensión del archivo (String)
private $nombreGenerado; // Nombre generado aleatoriamente (String)
private $estado; // Estado del proceso de subida (Boolean)
private $mensaje; // Mensaje del proceso de subida (String)
private $carpetaDestino; // Carpeta donde se almacena el archivo (String)
private $tamanoMaximoEnBytes; // Tamaño máximo en bytes que permite subir un archivo (Int)
private $extensionesValidas; // Extensiones validas (mime types) que se permite de un archivo (Array)

Métodos

public function getUbicacionTemporal(); // Devuelve la ubicación temporal del archivo
public function getNombre(); // Devuelve el nombre original del archivo
public function getTipo(); // Devuelve el tipo del archivo
public function getSize(); // Devuelve el tamaño del archivo
public function getError(); // Devuelve el estado de error de php
public function getExtension(); // Devuelve la extension del archivo
public function getNombreGenerado(); // Devuelve el nombre generado aleatoriamente
public function getEstado(); // Devuelve el estado del proceso
public function getMensaje(); // Devuelve el mensaje del proceso
public function getCarpetaDestino(); // Devuelve la carpeta de destino
public function getTamanoMaximoEnBytes(); // Devuelve el tamaño máximo en bytes
public function getExtensionesValidas(); // Devuelve las extensiones validas
public function setCarpetaDestino($carpetaDestino); // Setea la carpeta destino
public function setTamanoMaximoEnBytes($B); // Setea el tamaño máximo en bytes
public function setTamanoMaximoEnKiloBytes($KB); // Setea el tamaño máximo en kilobytes
public function setTamanoMaximoEnMegaBytes($MB); // Setea el tamaño máximo en megabytes
public function setExtensionesValidas($arrayExtensiones); // Setea las extensiones validas
public function setExtensionValidaTipoImagen($tamanoMaxEnMB = 10); // Setea las extensiones validas como imagen
public function setExtensionValidaTipoAudio($tamanoMaxEnMB = 20); // Setea las extensiones validas como audio
public function setExtensionValidaTipoVideo($tamanoMaxEnMB = 100); // Setea las extensiones validas como video
public function setExtensionValidaTipoPDF($tamanoMaxEnMB = 50); // Setea las extensiones validas como pdf
public function setExtensionValidaTipoTXT($tamanoMaxEnMB = 2); // Setea las extensiones validas como txt
public function setExtensionValidaTipoComprimido($tamanoMaxEnMB = 100); // Setea las extensiones validas como comprimido
public function setExtensionValidaTipoDocumentoOficina($tamanoMaxEnMB = 15); // Setea las extensiones validas como documento oficina
public function setExtensionValidaTipoDocumentoWeb($tamanoMaxEnMB = 2); // Setea las extensiones validas como documento web
public function procesar(); // Procesa la subida del archivo, validando los requerimientos

Ejemplos

// Instancio Upload
$upload = new Upload($_FILES["foto"]);

// Configuro Carpeta Destino
$upload->setCarpetaDestino("imagenes/"); // Dentro de la carpeta base (definida en CARPETA_UPLOAD)

// Configuro Tamaño Máximo
$upload->setTamanoMaximoEnMegaBytes(2);
//$upload->setTamanoMaximoEnKiloBytes(10);
//$upload->setTamanoMaximoEnBytes(50);

// Configuro Extension Valida (Tipo de archivo)
$upload->setExtensionValidaTipoImagen();
//$upload->setExtensionValidaTipoAudio();
//$upload->setExtensionValidaTipoVideo();
//$upload->setExtensionValidaTipoPDF();
//$upload->setExtensionValidaTipoTXT();
//$upload->setExtensionValidaTipoComprimido();
//$upload->setExtensionValidaTipoDocumentoOficina();
//$upload->setExtensionValidaTipoDocumentoWeb();
//$upload->setExtensionesValidas("text/css");

// Proceso Archivo
$upload->procesar(); // Destino: "upload/imagenes/", Tipo: "imagen", Tamaño máx: "2MB", Variable: $_FILES["foto"]

// Consulto Estado
if ($upload->getEstado()) {
	echo "Subida exitosa";
} else {
	echo "Subida no exitosa: ".$upload->getMensaje(); // Si se produjo un error o no cumplio los requisitos
}

// Gets Archivo
var_dump($upload->getUbicacionTemporal());
var_dump($upload->getNombre());
var_dump($upload->getTipo());
var_dump($upload->getSize());
var_dump($upload->getError());
var_dump($upload->getExtension());
var_dump($upload->getNombreGenerado());
var_dump($upload->getEstado());
var_dump($upload->getMensaje());
var_dump($upload->getCarpetaDestino());
var_dump($upload->getTamanoMaximoEnBytes());
var_dump($upload->getExtensionesValidas());

Detalle Métodos

Visibilidad Método Descripción Parametros Retorno
Público getUbicacionTemporal(); Devuelve la ubicación temporal del archivo Ubicación Temporal (String)
Público getNombre(); Devuelve el nombre original del archivo Nombre Original (String)
Público getTipo(); Devuelve el tipo del archivo Tipo Archivo (String)
Público getSize(); Devuelve el tamaño del archivo Tamaño Archivo (Int)
Público getError(); Devuelve el estado de error de php Error PHP (Boolean)
Público getExtension(); Devuelve la extension del archivo Extensión Archivo (String)
Público getNombreGenerado(); Devuelve el nombre generado aleatoriamente Nombre Generado (String)
Público getEstado(); Devuelve el estado del proceso Estado Proceso (Boolean)
Público getMensaje(); Devuelve el mensaje del proceso Mensaje Proceso (String)
Público getCarpetaDestino(); Devuelve la carpeta de destino Carpeta Destino (String)
Público getTamanoMaximoEnBytes(); Devuelve el tamaño máximo en bytes Tamaño Máximo (Int)
Público getExtensionesValidas(); Devuelve las extensiones validas Extensiones Validas (Array)
Público setCarpetaDestino($carpetaDestino); Setea la carpeta destino Carpeta Destino (String)
Público setTamanoMaximoEnBytes($B); Setea el tamaño máximo en bytes Tamaño Bytes (Int)
Público setTamanoMaximoEnKiloBytes($KB); Setea el tamaño máximo en kilobytes Tamaño KiloBytes (Int)
Público setTamanoMaximoEnMegaBytes($MB); Setea el tamaño máximo en megabytes Tamaño MegaBytes (Int)
Público setExtensionesValidas($arrayExtensiones); Setea las extensiones validas Extensiones Validas (Array)
Público setExtensionValidaTipoImagen($tamanoMaxEnMB = 10); Setea las extensiones validas como imagen Tamaño Max En Mb (Int)
Público setExtensionValidaTipoAudio($tamanoMaxEnMB = 20); Setea las extensiones validas como audio Tamaño Max En Mb (Int)
Público setExtensionValidaTipoVideo($tamanoMaxEnMB = 100); Setea las extensiones validas como video Tamaño Max En Mb (Int)
Público setExtensionValidaTipoPDF($tamanoMaxEnMB = 50); Setea las extensiones validas como pdf Tamaño Max En Mb (Int)
Público setExtensionValidaTipoTXT($tamanoMaxEnMB = 2); Setea las extensiones validas como txt Tamaño Max En Mb (Int)
Público setExtensionValidaTipoComprimido($tamanoMaxEnMB = 100); Setea las extensiones validas como comprimido Tamaño Max En Mb (Int)
Público setExtensionValidaTipoDocumentoOficina($tamanoMaxEnMB = 15); Setea las extensiones validas como documento oficina Tamaño Max En Mb (Int)
Público setExtensionValidaTipoDocumentoWeb($tamanoMaxEnMB = 2); Setea las extensiones validas como documento web Tamaño Max En Mb (Int)
Público procesar(); Procesa la subida del archivo, validando los requerimientos Respuesta (Array)

Constantes

Constante Descripción Valor
CARPETA_UPLOAD Carpeta donde se almacenan los archivos subidos /var/home/www/html/uploads/
TAMANO_MAXIMO_EN_BYTES Tamaño máximo en bytes de los archivo a subir 1000000
EXTENSIONES_VALIDAS Array de Mime Types validos ['image/jpg', 'image/jpeg', 'image/png', 'image/gif']

Validar Versión 1.3.0 10/05/2017 Test

Descripción: Validador de Datos y Reglas.

Usar

use PHP\Validar\Validar;

Propiedades

private $errores; // Lista con los errores de validación (Array)
private $reglas; // Lista con las reglas de validación (Array)

Métodos

public function email($dato, $campo = null); // Valida que el dato sea email
public function url($dato, $campo = null); // Valida que el dato sea url
public function ip($dato, $campo = null); // Valida que el dato sea ip
public function booleano($dato, $campo = null); // Valida que el dato sea booleano
public function numero($dato, $campo = null); // Valida que el dato sea número
public function flotante($dato, $campo = null); // Valida que el dato sea flotante
public function flotanteDesde($dato, $desde, $campo = null); // Valida que el dato sea flotante desde
public function flotanteHasta($dato, $hasta, $campo = null); // Valida que el dato sea flotante hasta
public function flotanteRango($dato, $desde, $hasta, $campo = null); // Valida que el dato sea flotante rango
public function entero($dato, $campo = null); // Valida que el dato sea entero
public function enteroDesde($dato, $desde, $campo = null); // Valida que el dato sea entero desde
public function enteroHasta($dato, $hasta, $campo = null); // Valida que el dato sea entero hasta
public function enteroRango($dato, $desde, $hasta, $campo = null); // Valida que el dato sea entero rango
public function texto($dato, $campo = null); // Valida que el dato sea texto
public function textoDesde($dato, $desde, $campo = null); // Valida que el dato sea texto desde
public function textoHasta($dato, $hasta, $campo = null); // Valida que el dato sea texto hasta
public function textoRango($dato, $desde, $hasta, $campo = null); // Valida que el dato sea texto rango
public function arreglo($dato, $campo = null); // Valida que el dato sea arreglo
public function objeto($dato, $campo = null); // Valida que el dato sea objeto
public function requerido($dato, $campo = null); // Valida que el dato sea requerido
public function letras($dato, $campo = null); // Valida que el dato sea letras
public function opciones($dato, $arrayOpciones, $campo = null); // Valida que el dato sea opciones
public function fecha($dato, $campo = null, $formato = "Y-m-d H:i:s"); // Valida que el dato sea fecha
public function identico($dato1, $dato2) ; // Valida que el dato sea identico
public function json($dato); // Valida que el dato sea json
public function colorHex($dato, $campo = null); // Valida que el dato sea color hexadecimal
public function funcion($dato, $campo = null); // Valida que el dato sea funcion
public function nulo($dato, $campo = null); // Valida que el dato sea nulo
public function opcional($dato, $campo = null); // Valida que el dato sea opcional
public function limpiarString($dato); // Sanitiza un string antes de ejecutar una consulta
public function getErrores(); // Devuelve todos los errores
public function getError($campo = null); // Devuelve el error de un campo especifico
public function setRegla($dato, $arrayValidaciones, $campo = null); // Setea una nueva regla de validación
public function getReglas(); // Devuelve las reglas de validación
public function validarReglas(); // Valida las reglas de validación

Ejemplos

/* Validaciones Simples */
if (Validar::entero(10)) {
	echo "Entero";
} else {
	echo "No Entero";
}

if (Validar::email("leandroburgoa@gmail.com")) {
	echo "Email Valido";
} else {
	echo "Email Invalido";
}

/* Validaciones Con Mensajes de Error */
Validar::url("megamedia", "Dirección Web");
print_r(Validar::getError("Dirección Web")); // Dirección Web debe contener una URL.


/* Validaciones con Reglas */
Validar::setRegla(31, 					["requerido", "entero", "enteroRango:1,125"], 	"Edad"); // Valida según el orden del array. Si la validación tiene parametros escribir "funcion:x1,x2"
Validar::setRegla("Leandro", 	["requerido", "texto"], 												"Nombre");

if (Validar::validarReglas()) {
	echo "Exito!";
} else {
	print_r(Validar::getErrores()); // ["nombre" => "Debe contener un número entero entre 1 y 125"]
}

Detalle Métodos

Visibilidad Método Descripción Parametros Retorno
Público email($dato, $campo = null); Valida que el dato sea email
Público url($dato, $campo = null); Valida que el dato sea url
Público ip($dato, $campo = null); Valida que el dato sea ip
Público booleano($dato, $campo = null); Valida que el dato sea booleano
Público numero($dato, $campo = null); Valida que el dato sea número
Público flotante($dato, $campo = null); Valida que el dato sea flotante
Público flotanteDesde($dato, $desde, $campo = null); Valida que el dato sea flotante desde
Público flotanteHasta($dato, $hasta, $campo = null); Valida que el dato sea flotante hasta
Público flotanteRango($dato, $desde, $hasta, $campo = null); Valida que el dato sea flotante rango
Público entero($dato, $campo = null); Valida que el dato sea entero
Público enteroDesde($dato, $desde, $campo = null); Valida que el dato sea entero desde
Público enteroHasta($dato, $hasta, $campo = null); Valida que el dato sea entero hasta
Público enteroRango($dato, $desde, $hasta, $campo = null); Valida que el dato sea entero rango
Público texto($dato, $campo = null); Valida que el dato sea texto
Público textoDesde($dato, $desde, $campo = null); Valida que el dato sea texto desde
Público textoHasta($dato, $hasta, $campo = null); Valida que el dato sea texto hasta
Público textoRango($dato, $desde, $hasta, $campo = null); Valida que el dato sea texto rango
Público arreglo($dato, $campo = null); Valida que el dato sea arreglo
Público objeto($dato, $campo = null); Valida que el dato sea objeto
Público requerido($dato, $campo = null); Valida que el dato sea requerido
Público letras($dato, $campo = null); Valida que el dato sea letras
Público opciones($dato, $arrayOpciones, $campo = null); Valida que el dato sea opciones
Público fecha($dato, $campo = null, $formato = "Y-m-d H:i:s"); Valida que el dato sea fecha
Público identico($dato1, $dato2) ; Valida que el dato sea identico
Público json($dato); Valida que el dato sea json
Público colorHex($dato, $campo = null); Valida que el dato sea color hexadecimal
Público funcion($dato, $campo = null); Valida que el dato sea funcion
Público nulo($dato, $campo = null); Valida que el dato sea nulo
Público opcional($dato, $campo = null); Valida que el dato sea opcional
Público limpiarString($dato); Sanitiza un string antes de ejecutar una consulta
Público getErrores(); Devuelve todos los errores
Público getError($campo = null); Devuelve el error de un campo especifico
Público setRegla($dato, $arrayValidaciones, $campo = null); Setea una nueva regla de validación
Público getReglas(); Devuelve las reglas de validación
Público validarReglas(); Valida las reglas de validación

Instalación

Descripción: Utilizaremos GITLab como gestor de versionado y Composer como gestor de dependencias.

Descargar Proyecto (Git)

  • Logearse en Gitlab.com
  • Acceder Proyecto
  • Clonar Proyecto (git clone https://gitlab.com/proyectos-burgoa/educacion.git)
  • Crear Rama (git checkout -b desarrollo)
  • Añadir Archivo (git add archivo.txt || git add .)
  • Ver Estado (git status)
  • Crear Commit (git commit -m "Se sube un archivo txt")
  • Subir Cambios (git push --set-upstream origin desarrollo || git push)
  • Bajar Cambios (git pull)
  • Crear Merge Request (desde panel web)

Instalar Dependencias (Composer)

  • Acceder al Servidor: Putty o VirtualBox
  • Entrar Carpeta Public HTML: cd /var/www/html
  • Instalar Dependencias: sudo composer install

Estructura

Descripción: La siguiente estructura es la definida para todos los sistemas.

Estructura

  • css
  • docs
  • exports
  • idiomas
  • img
  • js
  • logs
  • php
  • sql
  • uploads
  • vendor
  • .gitignore
  • .htaccess
  • composer.json
  • composer.lock
  • configuraciones.php
  • constantes.php
  • index.php
  • README.md
  • rutas.php

Servidor

Descripción: Es un servidor web virtual que incluye la instalación de los servicios y aplicaciones necesarias para correr una aplicación web completa.

Sistema Operativo

Ubuntu Server 18.04.1 x64

Servicios Instalados

  • Apache 2.4.29
  • PHP 7.2.10
  • MySQL 5.7.23
  • MongoDB 4.0
  • Node.js 8.12.0
  • NPM 6.4.1
  • Composer 1.7.2

Credencial

erictel @ erictel

Instalación

A. Introducción:
  • 1. Instalar Virtual Box
  • 2. Descargar Servidor.ova
  • 3. Importar Servidor.ova en Virtual Box
B. Configuración:
1. Carpeta Compartida:
  • Ir a: Virtual Box > Servidor > Configuración > Carpetas compartidas > Editar
  • Ruta carpeta: C:\www (elegir cualquier carpeta del disco local, idealmente cifrado)
  • Nombre carpeta: www (escribir así exactamente)
  • Sólo lectura y Automontar: desactivado
2. Configurar IP Estatica:
  • ifconfig / ipconfig (copiar ip address y gateway)
  • sudo nano /etc/netplan/01-cnf.yaml (modificar addresses y gateway4 con los datos anteriores, el prefijo "/24" es según la mascara)
  • sudo netplan apply
  • reboot
3. Crear Alias:
  • En Windows:
  • C:\system32\drivers\etc\host (editar con privilegios de acceso)
  • En Linux:
  • sudo nano /etc/hosts
  • Escribir:
  • 192.168.0.5 servidor.net
C. Acceder Servidor:
  • http://www.servidor.net/

Arquitectura