# 3 Laravel

Podemos entrar a la web oficial de Laravel (opens new window)
Podemos entrar a la web oficial de Composer (opens new window)

# ¿Qué es Laravel?

Aviso

Podemos entrar al video creado por Bluuweb sobre Laravel (opens new window) donde explica los fundamentos de Laravel y a la documentación creada por Bluuweb sobre Laravel (opens new window) creada en VuePress


Según Juan Carlos Arcila Díaz (Ver vídeo dando click acá) (opens new window):

  • Laravel es un framework de código abierto para desarrollar aplicaciones y servicios web con PHP.
  • Fue creado en 2011, Laravel propone en el desarrollo usar 'Routes with Clousures' en lugar de un MVC tradicional con el objetivo de hacer el código más claro.

# Enlaces utiles

En esta seccion pondremos enlaces utiles:

Notas Encriptación en Laravel

Notas de los proyectos

#

Importante: "Two" significa que lo hice yo mismo

#

---- Juan Carlos Arcila Diaz ----

# sistemaweb-laravel-mysql

  1. Se uso migraciones
  2. Se configuraron los modelos
  3. Nombre de las tablas de la bd en singular (El archivo SQL original estaba en singular)
  4. Revisar CategoriaController para ver documentación
  5. Se configuro el log de Laravel
    Buscar: 'debug' => (bool) env('APP_DEBUG', true), //false, se modifico
  6. Se modifico el timezone
    Buscar: 'timezone' => 'America/Lima', //UTC, se modifico
  7. Se configuro la traducción a Español en la ruta resources/lang
    Buscar: 'locale' => 'es', //en, se modifico
  8. La redireccion cuando te logueas por defecto es la ruta /home en la url
    Buscar: public const HOME = '/home';
  9. Se uso la plantilla "SB Admin", el repositorio minificado "plantilla-sb-admin" ubicado en:
    D:\PORTABLES\laragon\www\2 Bootstrap\3 Bootstrap 4 !De 0 a Experto! Curso completo + Forms con PHP (KKK)\plantillas\SB Admin
  10. Blindamos controladores con Gate para el control de permisos (Configuración luego de inicio rápido de autenticación)
    Buscar: Gate::define('haveaccess', function(User $user, $perm){

#

---- Victor Robles ----

# aprendiendo-laravel / proyecto-laravel / proyecto-laravel-two (master-php)

  1. No se uso migraciones
  2. Se configuraron los modelos
  3. Nombre de las tablas de la bd en plural (Esto es lo correcto)
  4. En este proyecto se realizara una copia de Instagram
  5. Se modifico la redireccion cuando te logueas para que sea la ruta /image en la url
    Buscar: public const HOME = '/image'; //home

# api-rest-laravel-two (master-fullstack)

  1. No se uso migraciones
  2. Se configuraron los modelos
  3. Nombre de las tablas de la bd en plural (Esto es lo correcto)
  4. En este proyecto se realizo un API REST en Laravel

# Apuntes varios

En esta seccion pondremos apuntes varios:

# Instalamos Composer

Instalamos Composer (opens new window) desde su web

composer --version
composer

# Instalamos Laravel

  1. Instalamos Laravel CLI en su ultima version
# Intalar la ultima version de Laravel CLI
composer global require laravel/installer

# Verificar instalacion de Laravel CLI
laravel --version
laravel

# Verificar version de Laravel en repositorios de los proyectos de Laravel
php artisan --version
php artisan

# sistemaweb-laravel-mysql

# Creamos el proyecto
laravel new sistemaweb-laravel-mysql                                                 # Creamos el proyecto, via Laravel
composer create-project --prefer-dist laravel/laravel:^7.0 sistemaweb-laravel-mysql  # Creamos el proyecto, via Composer
php artisan serve                                                                    # Levantamos el proyecto

# Modelos
php artisan make:model Categoria  # Creamos el modelo Categoria
php artisan make:model Articulo
php artisan make:model Persona
php artisan make:model Ingreso
php artisan make:model Venta

# Controladores
php artisan make:controller PruebasController
php artisan make:controller CategoriaController --resource
php artisan make:controller ArticuloController --resource
php artisan make:controller ClienteController --resource
php artisan make:controller ProveedorController --resource
php artisan make:controller IngresoController --resource
php artisan make:controller VentaController --resource
php artisan make:controller UserController --resource
php artisan make:controller RoleController --resource
php artisan make:controller ModuleController --resource

# Migraciones
php artisan migrate           # Ejecuta migraciones pendientes
php artisan migrate:reset     # Revierte todas las migraciones realizadas, eliminando todas las tablas de la base de datos. Es decir, elimina todas las tablas y los datos que se han creado en la base de datos a través de las migraciones.
php artisan migrate:rollback  # Revierte la última migración realizada, eliminando solo las tablas y datos que se crearon en esa migración específica. Si se han realizado varias migraciones desde la última vez que se ejecutó `migrate:rollback`, solo se revierte la última migración.
php artisan migrate:refresh   # Realiza dos acciones en una sola línea. Primero se ejecuta `migrate:reset`, que revierte todas las migraciones previas y elimina todas las tablas de la base de datos. Luego, se ejecuta `migrate`, que vuelve a ejecutar todas las migraciones en orden cronológico, creando las tablas y llenándolas con datos nuevamente.

# Rutas
php artisan route:list  # Te muestra todas las rutas de web.php
php artisan list        # Lista de comandos

# deliveryyape

# Creamos el proyecto
composer create-project laravel/laravel:^8.0 deliveryyape  # Creamos el proyecto, via Composer
php artisan serve                                          # Levantamos el proyecto

# Modelos
php artisan make:model Cliente  # Creamos el modelo Cliente

# Controladores
php artisan make:controller PruebasController
php artisan make:controller ClienteController --resource

# Rutas
php artisan route:list  # Te muestra todas las rutas de web.php
php artisan list        # Lista de comandos

# aprendiendo-laravel / proyecto-laravel / proyecto-laravel-two (master-php)

# Creamos el proyecto
laravel new proyecto-laravel-two                                                 # Creamos el proyecto, via Laravel
composer create-project --prefer-dist laravel/laravel:^7.0 proyecto-laravel-two  # Creamos el proyecto, via Composer
php artisan serve                                                                # Levantamos el proyecto

# Modelos
php artisan make:model Image  # Creamos el modelo Image
php artisan make:model Comment
php artisan make:model Like

# Controladores
php artisan make:controller PruebasController
php artisan make:controller UserController --resource
php artisan make:controller ImageController --resource
php artisan make:controller CommentController --resource
php artisan make:controller LikeController --resource
php artisan make:controller HomeController --resource

# Rutas
php artisan route:list  # Te muestra todas las rutas de web.php
php artisan list        # Lista de comandos

# api-rest-laravel-two (master-fullstack)

# Creamos el proyecto
laravel new api-rest-laravel-two                                                  # Creamos el proyecto, via Laravel
composer create-project --prefer-dist laravel/laravel api-rest-laravel-two "6.*"  # Creamos el proyecto, via Composer
php artisan serve                                                                 # Levantamos el proyecto

# Modelos
php artisan make:model Category  # Creamos el modelo Category
php artisan make:model Post

# Controladores
php artisan make:controller PruebasController
php artisan make:controller UserController --resource
php artisan make:controller CategoriaController --resource
php artisan make:controller PostController --resource

# Rutas
php artisan route:list  # Te muestra todas las rutas de web.php
php artisan list        # Lista de comandos

# Instalar libreria para JWT ----> 23. Instalar Librería para JWT (opens new window)

Ver video "23. Instalar libreria para JWT" de Victor Robles

Pasos
1. Luego de actualizar composer.json con "firebase/php-jwt": "3.0.0"
2. Ejecutar "composer update"

# Provider ----> 24. Creando sistema de autenticación con JWT (opens new window)

Ver video "24. Creando sistema de autenticación con JWT" de Victor Robles

Pasos
1. Creamos provider con "php artisan make provider JwtAuthServiceProvider" para que funcione es necesario agregarlo en config/app.php
2. Configuramos config/app.php para registrar el Provider
3. Creamos helper app/Helpers/JwtAuth.php

Si no registramos el provider la linea $jwtAuth = new JwtAuth(); en la function login de UserController no funcionara

# Middleware ----> 30. Middleware de autenticación (opens new window)

Ver video "30. Middleware de autenticacion" de Victor Robles

Pasos
1. Creamos este middleware con "php artisan make:middleware ApiAuthMiddleware" para que funcione es necesario agregarlo en app/Http/Kernel.php
2. Configuramos app/Http/Kernel.php para registrar el Middleware
3. Usamos el middleware en las funciones update y upload de UserController, tambien se puede usar en los constructores del controlador