No quise complicarme la vida, tratando de escoger un nombre para la metodología. Por ello fui muy simple y le puse VAC (*)
Traté de hacerlo lo más simple, al igual que la metodología en SÍ.
De esta forma, muchos personas, no solo programadores, podrían ser capaces de entender, utilizar y aprender PHP junto a la metodología.
La metodología en si ya tiene incluido muchos temas que se podrían aprender en clases o de forma autodidacta, como: Tipos de Datos, Condicionales, Bucles, Arreglos, Objetos, Clases, Instanciamientos, Sessiones, Cookies, etc.
VAC Tiene mucho potencial de crecimiento constante y es apadtable a cualquier tipo de sistema.
VAC Soporta desde PHP7.4 hasta la última versión, sin tener problemas de deprecación, o rendimiento.
VAC Es compatible con 3 tipos de Bases de datos mas comunes hoy en día: MySQL, PostgreSQL y SQL Server.
Necesitas tener todo esto para poder empezar a utlizar la metodología y los archivos.
https://github.com/fmorenoadmin/vac.git
C:\xampp\htdocs
no modificar a menos que xamp esté instalado en otro disco, o si usa otro servidor local colocar la carpeta pública de su servidor local, esto en automático creará la carpeta vac, asi que no es necesario colocarlaC:/xampp/htdocs/vac/database.sql
dentro del proyectoAvanzado -> Acceder de todas formas
Antes de comenzar, debes tener en cuenta que hay archivos que son importantes para el funcionamiento de la Metodología y/o Proyrecto:
DROP TABLE IF EXISTS tipos_usuarios;
--Esto elimina la tabla: tipos_usuarios, solo SI EXISTE, caso contrario no hará nada.
CREATE TABLE tipos_usuarios(
--Crea la tabla tipos_usuarios, con los siguientes campos:
id_tipo INT PRIMARY KEY AUTO_INCREMENT,
--Este campo: id_tipo, es la Llave Primaria de la Tabla, la cual se AUTOCOMPLETA CORRELATIVAMENTE
nombre_t VARCHAR(250) NULL DEFAULT NULL,
--Este campo: nombre_t, será el nombre del tipo de usuario, el cual tiene un tipo de dato: Cadena de Texto de (250) carácteres
descrip_t TEXT NULL DEFAULT NULL,
--Este campo: descrip_t, será la descipción del tipo de usuario, el cual tiene un tipo de dato: Texto
--Estos 8 campos que siguen: Sirven para poder manejar una auditoría de los registros de las Tablas
created_at DATETIME NULL DEFAULT CURRENT_TIMESTAMP,
id_created INT NULL DEFAULT 1,
--Estos 2 guardan el ID del empleado y FECHA, de la creación del registro.
updated_at DATETIME NULL DEFAULT NULL,
id_updated INT NULL DEFAULT 0,
--Estos 2 guardan el ID del empleado y FECHA, de la última edición del registro.
drop_at DATETIME NULL DEFAULT NULL,
motivo_drop TEXT NULL DEFAULT NULL,
id_drop INT NULL DEFAULT 0,
--Estos 3 guardan el ID del empleado, el MOTIVO y FECHA, de la eliminación del registro.
status INT NULL DEFAULT 1
--Este campo sirve para el ESTADO del registro:
--0 => Registro INACTIVO
--1 => Registro ACTIVO
--2 => Registro ELIMINADO
);
INSERT INTO tipos_usuarios (nombre_t) VALUES
('Super Administrador'),
('Administrador'),
('Vendedor'),
('Comprador'),
('Almacen'),
('Finanzas')
;
1 <?php// Apertura de PHP
2 require_once($rut.'config/constant.php');
//Requere al archivo de las constantes en todas las vistas.
4 $location = ((SCHU=='_qas') ? HTTPS : HTTP2).$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
//Esta variable: $location va a Almacenar la RUTA URL completa, actual en la cual nos encontrramos actualmente. Dependiendo del ESQUEMA ACTUAL.
Si es: _qas entonces usará la constante: HTTPS que su valor es: https://, y si es _prd entonces usará la constante: HTTP2 que su valor es: https://www.
6 $uri = $_SERVER['REQUEST_URI'];
//Esta variable almacena solo la ruta URI, la cual va despues del dominio, ejemplo esta es la URI acutal: /. Esto varia dependiendo si estas en _qas o en _prd.
8 $exp_url = explode('.', $_SERVER['HTTP_HOST']);
//Esto lo que hace es: DIVIDIR el dominio en partes separandolas por: . (punto), de esta manera si existen puntos en el dominio de dividirá y se creará un array con la cadena dividida. Ejemplo:
//array(4) {
[0]=>
string(3) "www"
[1]=>
string(3) "vac"
[2]=>
string(3) "net"
[3]=>
string(2) "pe"
}
//Esto va a variar dependiendo si estas en _qas o en _prd.
9 if (SCHU == '_qas') {
// Sí el ESQUEMA es _qas entonces hago lo que está en las lineas 10, 11, 12 y 13
10 if (empty($_SERVER['HTTPS']) || $_SERVER['HTTPS'] === "off") {
// Sí está vacía la variable HTTPS del array $_SERVER, ó el valor de la variable HTTPS del array $_SERVER es igual a: "off", entonces:
11 header('Location: '.$location);
// Lo redirecciono a la variable: $location, de la línea 4 de este archivo.
12 exit();
// Escapo de la ejecución del resto del archivo.
13 }
14 }else{
// Caso contrario, cuando el ESQUEMA se _prd, ejecuto lo de las lineas: 15 al 24
15 if ($exp_url[0] == 'www' || $exp_url[0] == 'www.' || $exp_url[1] == 'www' || $exp_url[1] == 'www.') {
// Sí en la variable [0] del array: $exp_url, de la línea: 8. Es igual a: "www" ó es igual a: "www."
// Ó sí en la variable [1] del array: $exp_url, de la línea: 8. Es igual a: "www" ó es igual a: "www."
// Entonces ejecuto lo que está en las lineas: 16 al 20
16 $location = HTTPS.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
// Reescribo el valor de la variable: $location, Usando HTTPS, ya que su valor es: "https://".
// Esto se hace, porque la URL yá tiene el: "www." en la URL
17 if (empty($_SERVER['HTTPS']) || $_SERVER['HTTPS'] === "off") {
// Sí está vacía la variable HTTPS del array $_SERVER, ó el valor de la variable HTTPS del array $_SERVER es igual a: "off", entonces:
18 header('Location: '.$location);
// Lo redirecciono a la variable: $location reescrita, de la línea 16 de este archivo.
19 exit();
// Escapo de la ejecución del resto del archivo.
20 }
21 }else{
// Caso contrarío
22 header("Location: ".$location);
// Lo redirecciono a la variable: $location, de la línea 4 de este archivo.
23 exit();
// Escapo de la ejecución del resto del archivo.
24 }
25 }
1 <?php// Apertura de PHP
2 date_default_timezone_set("America/Lima");
// Definimos la región en la que nos encontramos, para DATATIME. En mi Caso como estoy en Perú es America/Lima
3 header("Access-Control-Allow-Origin: domain.ext");
8 header("Access-Control-Allow-Origin: subdomain.domain.ext");
// De la Línea: 3 al 8. Se definen los dominios que tienen permitido hacer uso de los recursos como: css, scss, js, woff, woff2, eot, ttf, otf, imágenes, videos, etc.
10 define('HTTP', 'http://');
// Definimos una CONSTANTE llamada HTTP, la cual tiene como valor: 'http://'
11 define('HTTPS', 'https://');
// Definimos una CONSTANTE llamada HTTPS, la cual tiene como valor: 'https://'
12 define('HTTP2', 'https://www.');
// Definimos una CONSTANTE llamada HTTP2, la cual tiene como valor: 'https://www.'
14 define('TIT', ' | Metedología VAC-PHP');
// Definimos una CONSTANTE llamada TIT, la cual tiene como valor: ' | Metedología VAC-PHP'. Y se usa para concatenar a la variable: $pagina de las vistas, y se mostrará como el Título de la página actual.
15 define('TIPE', 'Metedología VAC-PHP');
// Definimos una CONSTANTE llamada TIPE, la cual tiene como valor: 'Metedología VAC-PHP'. Y se usa como el nómbre del Proyecto, este calor es usa en varios archivos.
17 define('DIRMOR', 'MORENOCL/');
// Definimos una CONSTANTE llamada DIRMOR, la cual tiene como valor: 'MORENOCL/'. Esta carpeta es el lugar donde se almacenarán todos los archivos de: Clases del proyecto.
18 define('DIRACT', 'ACTIONJF/');
// Definimos una CONSTANTE llamada DIRACT, la cual tiene como valor: 'ACTIONJF/'. Esta carpeta es el lugar donde se almacenarán todos los archivos de: Acciones del proyecto.
20 define('DIRERR', '/error/');
// Definimos una CONSTANTE llamada DIRERR, la cual tiene como valor: '/error/'. Esta carpeta es el lugar donde se alamacenan los archivos de error .shtml
21 define('CONF', 'config/');
// Definimos una CONSTANTE llamada CONF, la cual tiene como valor: 'config/'. Esta carpeta es el lugar donde se alamacenan los archivos de configuración del Proyecto.
22 define('VIEW', 'views/');
// Definimos una CONSTANTE llamada VIEW, la cual tiene como valor: 'views/'. Esta carpeta es el lugar donde se alamacenan vistas que pueden ser llamadas desde varias vistas globales.
24 define('DB_TYPE', 'mysqli_');
// Definimos una CONSTANTE llamada DB_TYPE, la cual tiene como valor: 'mysqli_'. Y se usa para poder usar el proyecto con una base de datos MySQL.
25 //define('DB_TYPE', 'pg_');
// Definimos una CONSTANTE llamada DB_TYPE, la cual tiene como valor: 'pg_'. Y se usa para poder usar el proyecto con una base de datos PostgreSQL.
26 //define('DB_TYPE', 'sqlsrv_');
// Definimos una CONSTANTE llamada DB_TYPE, la cual tiene como valor: 'sqlsrv_'. Y se usa para poder usar el proyecto con una base de datos SQL Server.
26 define('ROWS', 25);
// Definimos una CONSTANTE llamada ROWS, la cual tiene como valor: 25. Y se usa para poder mostrar una cantidad de filas determinadas para las tablas del proyecto.
// En caso de necesitar que una tabla en específico, muestre una cantidad de filas distanta a las demás. Solo necesitamos crear una nueva constante: define('ROWS2', 50);// con la cantidad de filas que necesitas en tu tabla.
// Después de crear las constantes lo siguiente que debes de hacer es:
-
1.- En la Acción: if (isset($_POST['busq'])) {
$total = ROWS;
Modificar esta constante: ROWS por: ROWS2
-
2.- En la Clase: function listar($total,$pag,$rid,$uid,$url,$busq=null,$val=null,$test=false){
$resultados_por_pagina = ROWS;
Modificar esta constante: ROWS por: ROWS2
// Con esto esa vista en específico, mostrará una cantidad de registros Distinta, de las demás.
30 define('SCHU', '_qas');
// Definimos una CONSTANTE llamada SCHU, la cual tiene como valor: '_qas'. Y se usa para poder especificar el ESQUEMA PRUEBAS del proyecto.
31 //define('SCHU', '_prd');
// Definimos una CONSTANTE llamada SCHU, la cual tiene como valor: '_prd'. Y se usa para poder especificar el ESQUEMA PRODUCCIÓN del proyecto.
32 //define('SCHU_EMAIL', SCHU);
// Definimos una CONSTANTE llamada SCHU_EMAIL, la cual tiene como valor: SCHU ESQUEMA ACTUAL. Y se usa para poder especificar el ESQUEMA ACTUAL EN EL ASUNTO DEL CORREO para el envío del Correo.
// Cuando es _qas, el asunto del correo será: [QAS - PRUEBAS] SEGUIDO DEL ASUNTO.
// Cuando es _prd, el asunto del correo será: EL ASUNTO.
Capacitación de la Metodología, realizada el día: Sábado 28 de Enero del 2024
Si desas puedes descargar el vídeo, pero este pesa: 3.24 Gb, entonces va a depender de la velocidad de tu internet.