Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/taguz91/pera-admin

Administracion de las fichas
https://github.com/taguz91/pera-admin

Last synced: about 1 month ago
JSON representation

Administracion de las fichas

Awesome Lists containing this project

README

        

# Proyecto Pera

### Objetivo
Proyecto enfocado en la elaboracion de fichas socioeconomicas y ocupacionales para el ISTA.

### Lenguaje
- PHP

### Base de datos
- Postgres

### Indicaciones para las preguntas
**Tipo de pregunta**
- 1: Obligatoria.
- 2: No Obligatoria.

**Tipo de respuesta**
- 1: Unica.
- 2: Multiple.
- 3: Libre Unica.
- 4: Libre Multiple.

### Indicaciones de como funciona
**General**
- Al requerir un archivo se debe especificar desde el nivel de la carpeta src.
```php
require 'src/vista/templates/header.php';
require_once ("src/modelo/permisoingreso/permisoingreso.php");
```
- Para usar una accion desde nuestras vistas utilizamos la constante URL
```php
//Aqui indicamos una accion que se realizara en un metodo de nuestro controlador

//Aqui utilizaremos archivos de nuestra carpeta publica

```
- Archivos que estan cargados en la pagina desde el inicio, **No se necesitan requerirlas mas**
```php
//Si se requieren que mas archivos sean accedidos de manera global deben ser especificados en index.php
require_once 'config/config.php';
require_once 'src/utils/dctr.php';
require_once 'src/utils/controlador.php';
require_once 'src/utils/error.php';
require_once 'src/utils/bd.php';
require_once 'src/controlador/main.php';
```
- Todos los errores estaran en el archivos errores.php de la carpeta utils, son cargados desde el inicio asi que podran ser accedidos desde cualquier punto. Todos los metodos del mismo deben ser staticos.
- Cualquier archivo esterno requerido en las vistas deberan llamarse, con la constante URL al inicio.
```php

```

**Base de datos**
- La conexion a la base de datos debe ser modificada en la carpeta config/config.php

**Controladores**
- Todos funcionaran para rutear.
- Todos deberan terminar con CTR.
```php
class PersonaCTR {

}
```
- Todos deben extender de CTR.
```php
class PersonaCTR extends CTR {

}
```
- En el constructor de todos los controladores, se debe especificar la ruta de las vistas.
```php
class PersonaCTR extends CTR implements DCTR {
//Constructor de la clase
function __construct(){
//Se le manda la ruta de la vista a la clase padre
parent::__construct("src/vista/permisoingreso/");
}
}
```
- Deben implementar la interfaz de DCTR e implementar el metodo inicio.
```php
class PersonaCTR extends CTR implements DCTR {

//Metodo que debe sobreescribir
public function inicio(){
//En este metodo llamaremos a cargar todo y la tabla
}
}
```
- Todos los controladores deberan requerir al inicio su correspondiente modelobd.
```php
require_once 'src/modelo/personas/personabd.php';
```
- Todos los links funcionan con el nombre del archivo y el nombre del metodo.
```php
-permisoficha
-permisoficha.php
-PermisoFichaCTR
-guardar
```

**Vistas**
- Todas las vistas se deberan requerir header.php y footer.php.
```php
//Al inicio del documento
require 'src/vista/templates/header.php';

//Al final del documento
require 'src/vista/templates/footer.php';
```

**Modelos**
Para no tardarnos mucho en la creacion de los modelos no crearemos getters ni setters. (Esto no es obligatorio solo es un consejo para escribir mas rapido el codigo.).
- Los modelos deberan estar en su carpeta correspondiente.
```php
-permisoingreso
-permisoingreso.php
-permisoingresobd.php
```
- Ejemplo de un modelo.
```php
class ModeloMD {
public $nombre;
public $apellido;
public $edad;
}
```
- Todos los que se conectan con base de datos deberan ser abstract ya que no las vamos a instanciar, todos sus metodos seran staticos.
- Todos los modelos bd deberan requerir el modelo correspondiente al inicio.
```php
require_once 'src/modelo/modelos/modelo.php';
```
- Ejemplo de un modelo para base de datos
```php
abstract class ModeloBD {
static function guadar($modelo) {
$sql = '
INSERT INTO public."Modelos"(nombre, apellido, edad)
VALUES(:nombre, :apellido, :edad);
';
//Tenemos acceso a este metodo debido a que lo cargamos al inicio en el index.php
$ct = getCon();
if($ct != null){
$s = $ct->prepare($sql);
//Si se expresaron parametros en el insert se los mapea en este array con tipo llave valor
$res = $s->execute([
'nombre' => $modelo->nombre,
'apellido' => $modelo->apellido,
'edad' => $modelo->edad,
]);
if($res != null){
return true;
}else{
return false;
}
}else{
return false;
}
}
}
```

### Recomendaciones
Sientanse libres de mejorar el codigo que se expone aqui, cualquier mejora debe se documentada detallando la fecha de modificacion y en los lugares en los que fueron implementados (El autor tambien seria importante.).