# 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:
- Instalamos Laravel 7.x (opens new window)
- Saber la versión de Laravel que tengo instalada (opens new window)
- como instalar una version anterior de laravel con composer ? ejemplo la version 5.1 (opens new window) ----> Recordar que tambien se puede ir a la documentación de Laravel de cualquier versión y buscar Installation Via Composer (opens new window)
- Establecer puerto para php artisan.php serve (opens new window)
- Namespace y use (opens new window)
- Laravel: Soporte PHP 8 - El Blog de Laravel (opens new window)
Notas Encriptación en Laravel
- Laravel proporciona
Hash::makeyHash::checkque es el equivalente a usar password_hash (opens new window) y password_verify (opens new window) que son funciones de PHP - Usamos
Hash::makeen sistemaweb-laravel-mysql - Usamos
Hash::makeen proyecto-laravel / proyecto-laravel-two - Usamos
Hash::makeyHash::checken api-rest-laravel-two - Ver el archivo http://localhost/8%20Otros/1%20util/hash.php (opens new window)
Notas de los proyectos
#
Importante: "Two" significa que lo hice yo mismo
#
---- Juan Carlos Arcila Diaz ----
# sistemaweb-laravel-mysql
- Se uso migraciones
- Se configuraron los modelos
- Nombre de las tablas de la bd en singular (El archivo SQL original estaba en singular)
- Revisar
CategoriaControllerpara ver documentación - Se configuro el log de Laravel
Buscar:'debug' => (bool) env('APP_DEBUG', true), //false, se modifico - Se modifico el timezone
Buscar:'timezone' => 'America/Lima', //UTC, se modifico - Se configuro la traducción a Español en la ruta
resources/lang
Buscar:'locale' => 'es', //en, se modifico - La redireccion cuando te logueas por defecto es la ruta
/homeen la url
Buscar:public const HOME = '/home'; - 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 - 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)
- No se uso migraciones
- Se configuraron los modelos
- Nombre de las tablas de la bd en plural (Esto es lo correcto)
- En este proyecto se realizara una copia de Instagram
- Se modifico la redireccion cuando te logueas para que sea la ruta
/imageen la url
Buscar:public const HOME = '/image'; //home
# api-rest-laravel-two (master-fullstack)
- No se uso migraciones
- Se configuraron los modelos
- Nombre de las tablas de la bd en plural (Esto es lo correcto)
- 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
- 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
- Laravel 7 (opens new window)
- Installing Laravel ----> Via Composer Create-Project (opens new window)
- GitHub - Laraveles/spanish: Repositorio de idioma de Laravel 5. (opens new window)
- Crear controllers (opens new window)
- Eloquent ORM (opens new window)
- Validacion unique (opens new window)
- Problema con "->groupBy" ----> "'strict' => false, //true, se modifico" (opens new window)
- Problema con migraciones al trabajar con con una versión inferior de Mysql v5.7.7 ----> "Schema::defaultStringLength(191); //Agregado para soportar migraciones" (opens new window)
- Relacion de muchos a muchos, users, roles, y role_user (opens new window)
# 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
- Laravel 8 (opens new window)
- Installing Laravel ----> Via Composer Create-Project (opens new window)
# 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)
- Laravel 7 (opens new window)
- Installing Laravel ----> Via Composer Create-Project (opens new window)
- Validation (opens new window)
- Redirect (opens new window)
- Para el editor usaremos croppr.js (opens new window)
- 380. Formatear Fechas (opens new window)
- Clase Helpers en web de Victor Robles (opens new window)
- Service Injection (opens new window)
- Hacer que se vea el nombre de la imagen en custom-file (opens new window)
- Translating or customizing the strings with SCSS (opens new window)
- Translating custom-file input Bootstrap 4 (opens new window)
- Para correr Laravel Mix, escribir "npm install" y "npm run dev". El archivo de configuración se llama webpack.mix.js, alli esta especificado las rutas "resources/js/app.js" y "resources/sass/app.scss" (opens new window)
# 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)
- Laravel 6 (opens new window)
- Installing Laravel ----> Via Composer Create-Project (opens new window)
- Anexo:Códigos de estado HTTP - Wikipedia, la enciclopedia libre (opens new window)
- Crear helpers en Laravel 5 | Victor Robles (opens new window)
- Cabeceras HTTP en PHP para permitir el acceso CORS - Victor Robles | Victor Robles (opens new window)
- Evitar error CORS Access-Control-Allow-Origin con AJAX - Victor Robles | Victor Robles (opens new window)
- Hashing (opens new window)
- Providers (opens new window)
- Middleware (opens new window)
# 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