---
# System prepended metadata

title: Documentación SayaFit MVC

---

# Documentación SayaFit MVC

## Idea del Proyecto
Esta es la documentación dos del proyecto Sayafit donde ahora vamos a pasar el proyecto a mvc (Modelo, vista ,controlador). En el proyecto lo que haremos ahora sera ordenarlo y crearle rutas para su funcionamiento .

## Objetivo del Proyecto : 
Este Proyecto tiene el objetivo es aprender a usar el **CRUD** (crear , leer , actualizar , eliminar), ademas de aprender a hacer una pagina web decente y con varias funcionalidades de las cuales comentare acontinuación.

## Ejecutar el Proyecto
Si solo quieres ejecutarlo veta a la consola de comandos de visual studio code (control+ñ) y escribe **cd public** y despues **php -S localhost:3000** , despues abrelo en **localhost:3000/** y se ejecutara.

## División del proyecto y funcionalidad:

Empecemos con el principio para tener un proyecto funcional necesitamos tenerlo todo bien divido y que este bien organizado, ya que este sera un modelo **MVC** donde las carpetas principales se dividiran en (models , views , controller).

![image](https://hackmd.io/_uploads/Bki4ZKoh6.png)



### models


Primero empezaremos con la carpeta con la información mas importante las clases:


![image](https://hackmd.io/_uploads/ryZcZFj26.png)

#### ActiveRecord.php
Estas clases son muy importante sobre todo la clase **ActiveRecord**  esta es la clase que nos va ahorrar mucho trabajo si crearamos mas clases diferentes o tablas ya que se encarga de todas las **funcionalidades principales** del codigo , estas serían **crear** , **actualizar** , **borrar**. Que es haria referencia al **CRUD**:

![image](https://hackmd.io/_uploads/ryMuzKon6.png)


![image](https://hackmd.io/_uploads/r18hGYs36.png)


![image](https://hackmd.io/_uploads/S1zTGto3a.png)


#### Producto.php

En **Producto.php** tendremos que tener solo la llamada y decirle a **ActiveRecord** la tabla y los valores de la tabla para que los introduzca , borra o actualice . Ademas también se encargara de decirnos si hay algun error al introducir estos datos:

![image](https://hackmd.io/_uploads/By897Ksha.png)


![image](https://hackmd.io/_uploads/SJGiQFj3p.png)


#### Admin.php:

En **En Admin.php** es el que se encargara del login  y ademas de eso se encargara también de añadir nuevos usuarios(esta clase esta completamente documentada):


![image](https://hackmd.io/_uploads/rJqhNYih6.png)


![image](https://hackmd.io/_uploads/HyX1SKiha.png)


### views : 

Esta carpeta solo guarda las paginas de cada uno de admin y paginas:

![image](https://hackmd.io/_uploads/rJl4SYsh6.png)


Para conseguir llegar a estas paginas tendremos que usar el **Router.php** Que es el encargado en la dirección de las paginas:

![image](https://hackmd.io/_uploads/BkgOBFsnp.png)


Para darle la funcinalidad ya que solo le decimos que vaya a views necesitamos que nos de una dirección a las clases y para eso esta el **index.php de public y el controller**. 

### Public

![image](https://hackmd.io/_uploads/SJwrIYo26.png)


En el public tenemos cosas normales como el css , el javascript , etc y por ultimo tenemos el **index.php** que es el encargado de la dirección de las routas y el nombramiento de estas, ademas estas las redirigen al controller , una de las partes mas **importantes** del codigo:

![image](https://hackmd.io/_uploads/Bk5LLFjn6.png)


### controller

![image](https://hackmd.io/_uploads/Hy43IFon6.png)

Controller es el encargado de decirnos que datos y funcionalidades del models , osea las clases va a funcionar en esa pagina ademas de eso nos va a decir la dirección concreta dentro de views donde esta la pagina sin necesidad que se muestre el nombre de la ruta a los usuarios solo veran el nombre que le hayas puesto a la pagina en **index.php**:

![image](https://hackmd.io/_uploads/SksuwFj3a.png)

#### composer.json

Deberíamos añadir para el funcionamiento de la pagina **Model** , **MVC** y **Controllers**:
![image](https://hackmd.io/_uploads/r1HFuto26.png)


# FIN DEL PROYECTO