# 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