Laravel Clase1
Laravel Clase1
Laravel Clase1
Indice
¿Qué es Laravel?..............................................................................................................................2
MVC: Modelo - Vista - Controlador................................................................................................2
Estructura de un proyecto................................................................................................................3
Carpeta app.................................................................................................................................5
Funcionamiento básico....................................................................................................................5
Rutas................................................................................................................................................6
Rutas básicas...............................................................................................................................6
Añadir parámetros a las rutas......................................................................................................8
Nombrar una ruta........................................................................................................................9
Llamar a controladores desde las rutas.....................................................................................10
Renderizar vistas con las rutas..................................................................................................10
Redirecciones de rutas...............................................................................................................10
Prefijos en las rutas...................................................................................................................11
La ruta de fallback.....................................................................................................................11
Límite de tasa o rate limiting en las rutas.................................................................................12
Binding implicito......................................................................................................................13
Vistas..............................................................................................................................................13
Definir vistas.............................................................................................................................13
Referenciar y devolver vistas....................................................................................................14
Pasar datos a una vista..............................................................................................................14
Vistas dentro de vistas...............................................................................................................15
Plantillas Blade..............................................................................................................................15
Mostrar datos.............................................................................................................................16
Mostrar un dato solo si existe...................................................................................................16
Comentarios..............................................................................................................................16
Renderizando JSON..................................................................................................................16
Estructuras de control................................................................................................................17
PHP...........................................................................................................................................19
Incluir una plantilla dentro de otra plantilla..............................................................................19
Layouts......................................................................................................................................19
Diseño de la aplicación web..........................................................................................................21
Incluir Assets.............................................................................................................................21
Bootstrap...................................................................................................................................21
Material Design.........................................................................................................................23
Laravel Vite...............................................................................................................................23
Licencia..........................................................................................................................................25
¿QUÉ ES LARAVEL?
Laravel es un framework de código abierto para el desarrollo de aplicaciones web en PHP que posee
una sintaxis simple, expresiva y elegante. Fue creado en 2011 por Taylor Otwell, inspirándose en
Ruby on Rails y Symfony, de los cuales ha adoptado sus principales ventajas.
Laravel facilita el desarrollo simplificando el trabajo con tareas comunes como la autenticación, el
enrutamiendo, gestión de sesiones, el almacenamiento en caché, etc. Algunas de las principales
características y ventajas de Laravel son:
• Esta diseñado para desarrollar bajo el patrón MVC (modelo - vista - controlador),
centrándose en la correcta separación y modularización del código. Lo que facilita el trabajo
en equipo, así como la claridad, el mantenimiento y la reutilización del código.
• Integra un sistema ORM de mapeado de datos relacional llamado Eloquent aunque también
permite la construcción de consultas directas a base de datos mediante su Query Builder.
• Permite la gestión de bases de datos y la manipulación de tablas desde código, manteniendo
un control de versiones de las mismas mediante su sistema de Migraciones.
• Utiliza un sistema de plantillas para las vistas llamado Blade, el cual hace uso de la cache
para darle mayor velocidad. Blade facilita la creación de vistas mediante el uso de layouts,
herencia y secciones.
• Facilita la extensión de funcionalidad mediante paquetes o librerías externas. De esta forma
es muy sencillo añadir paquetes que nos faciliten el desarrollo de una aplicación y nos
ahorren mucho tiempo de programación.
• Incorpora un intérprete de línea de comandos llamado Artisan que nos ayudará con un
montón de tareas rutinarias como la creación de distintos componentes de código, trabajo
con la base de datos y migraciones, gestión de rutas, cachés, colas, tareas programadas, etc.
Página 2 de 25
De manera genérica, los componentes de MVC se podrían definir como sigue:
• El Modelo: Es la representación de la
MODEL información con la cual el sistema opera,
por lo tanto gestiona todos los accesos a
UPDATES MANIPULATES dicha información, tanto consultas como
actualizaciones. Las peticiones de acceso o
manipulación de información llegan al
VIEW CONTROLLER 'modelo' a través del 'controlador'.
• El Controlador: Responde a eventos
(usualmente acciones del usuario) e invoca
SE
ES
US
ESTRUCTURA DE UN PROYECTO
Al crear un nuevo proyecto de Laravel se generará una estructura de carpetas y archivos para
organizar el código.
• app – Contiene el código principal de la aplicación. Esta dividida en muchas subcarpetas.
• bootstrap – En esta carpeta se incluye el código que se carga para procesar cada una de
las llamadas a nuestro proyecto.
• config – Aquí se encuentran todos los archivos de configuración de la aplicación: base
datos, cache, correos, sesiones o cualquier otra configuración general de la aplicación.
• database – En esta carpeta se incluye todo lo relacionado con la definición de la base
de datos del proyecto. Dentro de ella se encuentran a su vez tres carpetas: factories,
migrations y seeds.
• lang – En esta carpeta se guardan archivos PHP que contienen arrays con los textos del
sitio web en diferentes lenguajes, solo será necesario utilizarla en caso que se desee que la
aplicación se pueda traducir.
• public – Es la única carpeta pública, la única que debería ser visible en el servidor web.
Todo las peticiones y solicitudes a la aplicación pasan por esta carpeta, ya que en ella se
encuentra el index.php, este archivo es el que inicia todo el proceso de ejecución del
Página 3 de 25
framework. En este directorio también se alojan los archivos CSS, Javascript, imágenes y
otros archivos que se quieran hacer públicos.
• resources – Esta carpeta contiene a su vez tres carpetas: views, css y js:
Página 4 de 25
• composer.json – Este archivo es el utilizado por Composer para realizar la instalación
de Laravel. En una instalación inicial únicamente se especificará la instalación de un
paquete, el propio framework de Laravel, pero podemos especificar la instalación de otras
librerías o paquetes externos que añadan funcionalidad a Laravel.
CARPETA APP
La carpeta app es la que contiene el código principal del proyecto, como son los controladores,
filtros y modelos de datos y es donde se crearan las clases a utilizar. Esta carpeta contiene a su vez
muchas subcarpetas, pero la principal a utilizar es la carpeta Http:
FUNCIONAMIENTO BÁSICO
El funcionamiento básico que sigue Laravel tras una petición web a una URL del sitio es el
siguiente:
• Todas las peticiones entran a través del archivo public/index.php, el cual en primer
lugar comprobará en el archivo de rutas (routes/web.php) si la URL es válida y en caso
de serlo a que controlador tiene que hacer la petición.
• A continuación se llamará al método del controlador asignado para dicha ruta, el cual,
dependiendo de la petición:
• Accederá a la base de datos (si fuese necesario) a través de los "modelos" para
obtener datos (o para añadir, modificar o eliminar).
• Tras obtener los datos necesarios los preparará para pasárselos a la vista.
• En el tercer paso el controlador llamará a una vista con una serie de datos asociados, la cual
se preparará para mostrarse correctamente a partir de los datos de entrada y por último se
mostrará al usuario.
A continuación se incluye un pequeño esquema de este funcionamiento:
Página 5 de 25
public/index.php routes
CONTROLLER MODEL
VIEW
RUTAS
Las rutas son llamadas dependiendo de la URL que el usuario requiera y los archivos que se
encargan de ellas están en la carpeta routes.
• api.php: rutas que tienen el prefijo api, funcionan para cuando se crea una API que
cualquiera puede consumir.
• channels.php: canales que sirven para propagar mensajes.
Las rutas de la aplicación se tienen que definir en el archivo routes/web.php. Este es el punto
centralizado para la definición de rutas y cualquier ruta no definida en este archivo no será válida,
generado una excepción (lo que devolverá un error 404). A estas rutas se les asigna el grupo de
middleware web, el cual proporciona algunas características como el estado de la sesión y la
protección CSRF.
Las rutas, en su forma más sencilla, pueden devolver directamente un valor desde el propio archivo
de rutas, pero también podrán generar la llamada a una vista o a un controlador.
RUTAS BÁSICAS
Las rutas, además de definir la URL de la petición, también indican el método con el cual se ha de
hacer dicha petición.
Los métodos o verbos HTTP indican lo que se desea hacer:
• GET: normalmente para obtener recursos o valores
• PUT: verbo usado para editar
• POST: para agregar algo nuevo, normalmente un insert para una base de datos. Con este
método se envían los formularios.
Página 6 de 25
• DELETE: cuando vamos a eliminar algo.
Nota: la diferencia entre GET y POST es que con GET los datos viajan en la url (si alguien ve las
urls que visitas y por ellas se manda la contraseña, podría averiguarla) y con POST los mismos
viajan en el cuerpo de la petición. Si se combina POST con https se obtiene una app segura.
Los dos métodos más utilizados son las peticiones tipo GET y tipo POST. Por ejemplo, para definir
una petición tipo GET habría que añadir el siguiente código al archivo web.php:
Route::get('/', function()
{
return '¡Hola mundo!';
});
Este código se lanzaría cuando se realice una petición tipo GET a la ruta raíz de la aplicación. Si se
esta trabajando en local esta ruta sería http://localhost/nombre_proyecto/public
pero cuando la web esté en producción se referiría al dominio principal, por ejemplo:
http://www.dirección-de-la-web.com. Es importante indicar que si se realiza una
petición tipo POST o de otro tipo que no sea GET a dicha dirección se devolvería un error ya que
esa ruta no está definida.
Para definir una ruta tipo POST se realizaría de la misma forma pero cambiando el verbo GET por
POST:
Route::post('/inicio', function()
{
return '¡Hola mundo!';
});
De la misma forma podemos definir rutas para peticiones PUT, DELETE, PATCH o OPTIONS:
Route::put('/inicio', function () {
//
});
Route::delete('/inicio', function () {
//
});
Si se desea que una ruta se defina a la vez para varios verbos se añadirá un array con los tipos, de la
siguiente forma:
Route::any('/inicio', function()
Página 7 de 25
AÑADIR PARÁMETROS A LAS RUTAS
Para añadir parámetros a una ruta se indican entre llaves {} a continuación de la ruta, de la forma:
Route::get('user/{id}', function($id)
{
return 'User '.$id;
});
En este caso se define la ruta /user/{id}, donde id es requerido y puede ser cualquier valor.
En caso de no especificar ningún id se produciría un error. El parámetro se le pasará a la función,
el cual se podrá utilizar para por ejemplo obtener datos de la base de datos, almacenar valores, etc.
También se puede indicar que un parámetro es opcional añadiendo el símbolo ? al final (y en este
caso no daría error si no se realiza la petición con dicho parámetro):
Página 8 de 25
});
Laravel también permite el uso de expresiones regulares para validar los parámetros que se le pasan
a una ruta. Por ejemplo, para validar que un parámetro esté formado solo por letras o solo por
números:
Route::get('user/{name}', function($name)
{
//
})->where('name', '[A-Za-z]+');
Route::get('user/{id}', function($id)
{
//
})->where('id', '[0-9]+');
Laravel incorpora para mayor comodidad, algunos patrones de expresiones regulares de uso común:
Página 9 de 25
Route::get('contactanos', function(){
return 'Sección de contactos';
})->name('contacto');
Route::get('ayuda', function(){
echo "<a href='” . route('contacto') . "'> Ayuda 1 </a><br>”;
echo "<a href='” . route('contacto') . "'> Ayuda 2 </a><br>”;
echo "<a href='” . route('contacto') . "'> Ayuda 3 </a><br>”;
echo "<a href='” . route('contacto') . "'> Ayuda 4 </a><br>”;
});
use App\Http\Controllers\ProductosController;
Dentro del controlador igualmente es posible recibir datos de la URL o datos de un formulario.
Route::view('/contacto', 'contacto');
Route::view('/acerca-de', 'acercaDe', ['anio' => date('Y')]);
Route::view('/quienes-somos', 'quienesSomos');
Route::view('/servicios', 'servicios', ['proveedor' => 'Garcia']);
REDIRECCIONES DE RUTAS
Si se quiere redireccionar, se podría hacer esto:
Route::get('/pagina-antigua', function(){
return redirect('pagina-nueva');
});
Route::redirect('/pagina-antigua', '/pagina-nueva');
return back();
Página 10 de 25
O si se desdea pasar parametros a una ruta con nombre:
use App\Http\Controllers\UserController;
return redirect()->action(
[UserController::class, 'profile'], ['id' => 1]
);
administrador/escritorio
administrador/ajustes
administrador/cuenta
administrador/factura/1
Laravel provee una manera de prefijar y responder a cada ruta a partir de ese prefijo llamando a
Route::prefix() y pasándole un argumento que es el prefijo.
Route::prefix("administrador")->group(function(){
// Aquí llamar a Route::método como lo solíamos hacer
// podemos pasar parámetros, poner nombres, expresiones
// regulares y todo eso
Route::get("/", function(){
return "Yo respondo a administrador/";
});
Route::get("/escritorio", function(){
return "Yo respondo a administrador/escritorio";
});
Route::get("/ajustes", function(){
return "Yo respondo a administrador/ajustes";
});
Route::get("/cuenta", function(){
return "Yo respondo a administrador/cuenta";
});
Route::get("/factura/{id}", function($id){
return "Yo respondo a administrador/factura y puedo ver que el id
es $id";
});
Página 11 de 25
});
LA RUTA DE FALLBACK
La ruta de fallback permite personalizar o cambiar la forma en la que se maneja un error 404 en
Laravel.
Para personalizar el comportamiento de cuando no se encuentra o resuelve ninguna ruta, se llamara
a Route::fallback se le pasara una función que se encargará de mostrar un mensaje de error o
redirigir, eso depende de la app.
Route::fallback(function () {
// En este caso pongo muchos return para ejemplificar pero la función
// se termina en el primer return que encuentre
# Regresar una simple cadena
return "No encontré la página que buscabas";
# Redireccionar
return redirect("/");
Nota: la documentación oficial dice que esta debería ser la última ruta en el archivo de rutas; es
decir, hay que escribirla al final.
Route::middleware("throttle:2,1")->group(function () {
Route::get("/limitada", function () {
return "Hola usuario. Solamente puedes verme 2 veces por minuto";
});
// Aquí abajo podrías agregar rutas que igualmente serán limitadas
// con el throttle de arriba
Página 12 de 25
});
Route::middleware("throttle:100,2")->group(function () {
Route::get("/menos_limitada", function () {
return "Hola usuario. Puedes verme 100 veces cada 2 minutos";
});
// Aquí abajo podrías agregar rutas que igualmente serán limitadas
// con el throttle de arriba
});
Route::middleware("throttle")->group(function () {
Route::get("/limitada_defecto", function () {
return "Hola usuario. Puedes verme 60 veces cada 1 minuto,
lo cual es la configuración por defecto";
});
// Aquí abajo podrías agregar rutas que igualmente serán limitadas
// con el throttle de arriba
});
BINDING IMPLICITO
Laravel resuelve automáticamente los modelos de eloquent definidos en las rutas o acciones de los
controladores cuyos nombres de las variables con insinuación de tipo coinciden con el nombre de
un segmento de ruta.
use App\Models\User;
VISTAS
Las vistas son la forma de presentar el resultado (una pantalla del sitio web) de forma visual al
usuario, el cual podrá interactuar con él y volver a realizar una petición. Las vistas además
permiten separar toda la parte de presentación de resultados de la lógica (controladores) y de la base
de datos (modelos). Por lo tanto no tendrán que realizar ningún tipo de consulta ni procesamiento de
datos, simplemente recibirán datos y los prepararán para mostrarlos como HTML.
Página 13 de 25
DEFINIR VISTAS
Las vistas se almacenan en la carpeta resources/views como archivos PHP, y por lo tanto
tendrán la extensión.php. Contendrán el código HTML del sitio web, mezclado con los assets
(CSS, imágenes, Javascripts, etc. que estarán almacenados en la carpeta public) y algo de código
PHP (o código Blade de plantillas) para presentar los datos de entrada como un resultado HTML.
A continuación se incluye un ejemplo de una vista simple, almacenada en el archivo
resources/views/home.php, que simplemente mostrará por pantalla ¡Hola <nombre>!,
donde <nombre> es una variable de PHP que la vista tiene que recibir como entrada para poder
mostrarla.
<html>
<head>
<title>Mi Web</title>
</head>
<body>
<h1>¡Hola <?php echo $nombre; ?>!</h1>
</body>
</html>
Route::get('/', function()
{
return view('home', ['nombre' => 'Matias']);
});
En este caso se define que la vista se devuelva cuando se haga una petición tipo GET a la raíz del
sitio, la función genera la vista usando el método view y la devuelve. Esta función recibe como
parámetros:
• El nombre de la vista (en este caso home), el cual será un archivo almacenado en la carpeta
resources/views/home.php. Para indicar el nombre de la vista se utiliza el mismo
nombre del archivo pero sin la extensión .php.
• Como segundo parámetro recibe un array de datos que se le pasarán a la vista. En este caso
la vista recibirá una variable llamada $nombre con valor "Matias".
use Illuminate\Support\Facades\View;
Página 14 de 25
para referenciar las vistas que están dentro de subcarpetas tenemos que utilizar la notación tipo
"dot", en la que las barras que separan las carpetas se sustituyen por puntos. Por ejemplo, para
referenciar la vista resources/views/user/login.php usaríamos el nombre
user.login, o la vista resources/views/user/register.php la cargaríamos de la
forma:
Route::get('register', function()
{
return view('user.register');
});
Route::get('user/profile/{id}', function($id)
{
$user = // Cargar los datos del usuario a partir de $id
return view('user.profile', ['user' => $user]);
});
Laravel además ofrece una alternativa que crea una notación un poco más clara. En lugar de pasar
un array como segundo parámetro podemos utilizar el método with para indicar una a una las
variables o contenidos que se quieren enviar a la vista:
$view2 = view('user.profile')
->with('user', $user)
->with('editable', false);
//códigos en web.php
$view = View::make('home')->nest('content', 'partials.view1');
Página 15 de 25
El código anterior generaría la vista padre (home) y en su variable content colocaría la vista hija
partials.view1.
//Código de home.php
<html>
<body>
<h1>¡Hola!</h1>
<?php echo $content; ?>
</body>
</html>
PLANTILLAS BLADE
Laravel utiliza Blade para la definición de plantillas en las vistas. Esta librería permite realizar todo
tipo de operaciones con los datos, además de la sustitución de secciones de las plantillas por otro
contenido, herencia entre plantillas, definición de layouts o plantillas base, etc.
Los archivos de vistas que utilizan el sistema de plantillas Blade tienen que tener la extensión
.blade.php. Esta extensión tampoco se tendrá que incluir a la hora de referenciar una vista
desde el archivo de rutas o desde un controlador. Es decir, se utiliza view('home') tanto si el
archivo se llama home.php como home.blade.php.
En general el código que incluye Blade en una vista empezará por los símbolos @ o {{, el cual
posteriormente será procesado y preparado para mostrarse por pantalla. Blade no añade sobrecarga
de procesamiento, ya que todas las vistas son preprocesadas y cacheadas, por el contrario brinda
utilidades que ayudarán en el diseño y modularización de las vistas.
MOSTRAR DATOS
El método más básico de Blade es el de mostrar datos, para esto se utilizan las llaves dobles ({{ }})
y dentro de ellas se escribe la variable o función PHP con el contenido a mostrar:
Nota: En general siempre se usan las llaves dobles, en especial si se mostraran datos que son
proporcionados por los usuarios de la aplicación. Esto evitará que inyecten símbolos que produzcan
errores o inyecten código javascript que se ejecute sin que nosotros queramos. Por lo tanto, este
último método solo debe ser utilizado si es seguro el contenido que se recibirá.
Página 16 de 25
MOSTRAR UN DATO SOLO SI EXISTE
Para comprobar que una variable existe o tiene un determinado valor podemos utilizar el operador
ternario de la forma:
COMENTARIOS
Para escribir comentarios en Blade se utilizan los símbolos {{-- y --}}, por ejemplo:
RENDERIZANDO JSON
A veces puede pasar un array a su vista con la intención de renderizarlo como JSON para inicializar
una variable JavaScript. Sin embargo, en lugar de llamar manualmente a json_encode, puede usar la
directiva del método Illuminate\Support\Js::from. El método from acepta los mismos argumentos
que la función json_encode de PHP; sin embargo, se asegurará de que el JSON resultante se escape
correctamente para su inclusión dentro de las comillas HTML. El método from devolverá una
declaración JSON.parse de cadena que convertirá el objeto o la matriz dados en un objeto
JavaScript válido:
<script>
var app = {{ Illuminate\Support\Js::from($array) }};
</script>
ESTRUCTURAS DE CONTROL
Blade permite utilizar la estructura if de las siguientes formas:
@unless (Auth::check())
Ud. no se encuentra logueado.
@endunless
Además de las directivas condicionales ya discutidas, las directivas @isset y @empty pueden usarse
como atajos convenientes para sus respectivas funciones de PHP.
Página 17 de 25
@isset($records)
// $records Está definido y no es nulo...
@endisset
@empty($records)
// $records es "vacio"...
@endempty
En los siguientes ejemplos se puede ver como realizar bucles tipo for, while o foreach:
@while (true)
<p>Soy un bucle while infinito!</p>
@endwhile
Al usar bucles, también puede omitir la iteración actual o finalizar el bucle usando las directivas
@continue y @break:
@if ($user->number == 5)
@break
@endif
@endforeach
Página 18 de 25
• count: longitud del arreglo que está siendo recorrido.
• first: va a estar en true en el primer elemento.
• last: va a estar en true en el último elemento.
• depth: la profundidad del ciclo. Esto es útil en ciclos anidados.
• parent: si estamos en un ciclo anidado, $loop->parent se refiere al $loop del ciclo
padre o del ciclo superior.
También hay directivas tomadas de PHP como @isset() y @empty() que indican si esta o no
seteado el valor de una variable. Switch funciona igual que el switch de PHP. Se comienza con
@switch($valor), se termina con @endswitch y para los casos se utiliza
@case($unValor). Abajo de cada @case debe ir un @break y para el valor por defecto se usa
@default.
@switch($i)
@case(1)
First case...
@break
@case(2)
Second case...
@break
@default
Default case...
@endswitch
Estas son las estructuras de control más utilizadas. Ademas de estas Blade define algunas más que
se pueden ver directamente en su documentación: https://laravel.com/docs/9.x/blade
PHP
En algunas situaciones, es útil incrustar código PHP en sus vistas Blade, utilizar @php para ejecutar
un bloque de PHP plano dentro de tu plantilla:
@php
//
@endphp
@include('view_name')
Ademas se puede pasar un array de datos a la vista a cargar usando el segundo parámetro del
método include:
Página 19 de 25
Esta opción es muy útil para crear vistas que sean reutilizables o para separar el contenido de una
vista en varios archivos.
LAYOUTS
Blade también permite la definición de layouts para crear una estructura HTML base con secciones
que serán rellenadas por otras plantillas o vistas hijas. Por ejemplo, crear un layout con el contenido
principal o común de la web (head, body, etc.) y definir una serie de secciones que serán rellenados
por otras plantillas para completar el código. Este layout puede ser utilizado para todas las pantallas
del sitio web, lo que permite que en el resto de plantillas no se repita todo este código.
A continuación de incluye un ejemplo de una plantilla tipo layout almacenada en el archivo
resources/views/layouts/master.blade.php:
<html>
<head>
<title>Mi Web</title>
</head>
<body>
@section('menu')
Contenido del menu
@show
<div class="container">
@yield('content')
</div>
</body>
</html>
Posteriormente, en otra plantilla o vista, indicar que extienda el layout que se ha creado (con
@extends('layouts.master')) y que complete las dos secciones de contenido que se
definido en el mismo:
@extends('layouts.master')
@section('menu')
@parent
<p>Este contenido es añadido al menú principal.</p>
@endsection
@section('content')
<p>Este apartado aparecerá en la sección "content".</p>
@endsection
Como se puede ver, las vistas que extienden un layout simplemente tienen que sobrescribir las
secciones del layout. La directiva @section permite ir añadiendo contenido en las plantillas hijas,
mientras que @yield será sustituido por el contenido que se indique. El método @parent carga
en la posición indicada el contenido definido por el padre para dicha sección.
Página 20 de 25
El método @yield también permite establecer un contenido por defecto mediante su segundo
parámetro:
BOOTSTRAP
Bootstrap (https://getbootstrap.com/) es una biblioteca multiplataforma o conjunto de herramientas
de código abierto para diseño de sitios y aplicaciones web. Contiene plantillas de diseño con
tipografía, formularios, botones, cuadros, menús de navegación y otros elementos de diseño basado
en HTML y CSS, así como extensiones de JavaScript adicionales. A diferencia de muchos
frameworks web, solo se ocupa del desarrollo front-end.
Bootstrap proporciona un conjunto de hojas de estilo que proveen definiciones básicas de estilo para
todos los componentes de HTML. Esto otorga una uniformidad al navegador y al sistema de
anchura, da una apariencia moderna para el formateo de los elementos de texto, tablas y
formularios.
Existen dos formas de utilizarlo en un proyecto Laravel:
• Instalar en la carpeta del proyecto utilizando composer:
Página 21 de 25
composer require components/jquery
composer require rsportella/popper
composer require twbs/bootstrap:5.2.0
"scripts": {
"post-update-cmd": [
"rm -rf public/bootstrap",
"cp -R vendor/twbs/bootstrap/dist public/bootstrap",
"rm -rf public/jquery",
"cp -R vendor/components/jquery public/jquery"
]
}
composer update
Por ultimo habrá que agregar en el archivo de la vista los link para hacer referencia a la
ubicación de los estilos de bootstrap
<link
href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.
css" rel="stylesheet"
integrity="sha384-gH2yIJqKdNHPEq0n4Mqa/HGKIhSkIHeL5AyhkYV8i59U5AR6csBvApHH
Nl/vI1Bx" crossorigin="anonymous">
<script
src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle
.min.js" integrity="sha384-
A3rJD856KowSb7dwlZdYEkO39Gagi7vIsF0jrRAoQmDKKtQBHUuLZ9AsSv4jD4Xa"
crossorigin="anonymous"></script>
Página 22 de 25
MATERIAL DESIGN
Material design es una normativa de diseño enfocado en la visualización del sistema operativo
Android, además en la web y en cualquier plataforma. Fue desarrollado por Google.
https://material.io/
<link
href="https://unpkg.com/material-components-web@latest/dist/material-
components-web.min.css" rel="stylesheet">
<script
src="https://unpkg.com/material-components-web@latest/dist/material-
components-web.min.js"></script>
LARAVEL VITE
Vite es una herramienta de construcción de interfaz moderna que proporciona un entorno de
desarrollo extremadamente rápido y empaqueta su código para la producción. Al crear aplicaciones
con Laravel, normalmente usará Vite para agrupar los archivos CSS y JavaScript de su aplicación
en activos listos para producción.
El objetivo es, entre otras cosas, procesar todo el código CSS, minificarlo y combinarlo en un solo
archivo. Lo mismo para el código javascript, minificar, ofuscar y combinar todo el código en un
solo archivo, haciendo las páginas web mas seguras y rápidas.
Primero de todo debe tener instalado Node.js y NPM
En la raíz del proyecto y ejecutar el siguiente comando para instalar los paquetes que están en el
archivo package.json . Serán los necesarios para poder utilizar Laravel Vite:
npm install
El complemento Laravel Vite requiere que especifique los puntos de entrada para su aplicación.
Estos pueden ser archivos JavaScript o CSS e incluyen lenguajes preprocesados como TypeScript,
JSX, TSX y Sass.
Página 23 de 25
'resources/js/app.js',
]),
],
});
debe importar su CSS a través de JavaScript. Por lo general, esto se haría en el archivo
resources/js/app.js de su aplicación:
import './bootstrap';
import '../css/app.css';
Con los puntos de entrada de Vite configurados, solo necesita hacer referencia a ellos en una
directiva Blade @vite() que agrega al <head> de la plantilla raíz de su aplicación:
<!doctype html>
<head>
{{-- ... --}}
@vite(['resources/css/app.css', 'resources/js/app.js'])
</head>
Hay dos formas de ejecutar Vite. Puede ejecutar el servidor de desarrollo a través del comando dev,
que es útil al desarrollar localmente. El servidor de desarrollo detectará automáticamente los
cambios en sus archivos y los reflejará instantáneamente en cualquier ventana abierta del
navegador.
O bien, ejecutar el comando build creará una versión y empaquetará los activos de su aplicación y
los preparará para que los implemente en producción:
Página 24 de 25
LICENCIA
Este documento se encuentra bajo Licencia Creative Commons Attribution – NonCommercial -
ShareAlike 4.0 International (CC BY-NC-SA 4.0), por la cual se permite su exhibición, distribución,
copia y posibilita hacer obras derivadas a partir de la misma, siempre y cuando se cite la autoría
del Prof. Matías E. García y sólo podrá distribuir la obra derivada resultante bajo una licencia
idéntica a ésta.
Matías E. García
Prof. & Tec. en Informática Aplicada
www.profmatiasgarcia.com.ar
[email protected]
Página 25 de 25