Qué es Laravel, ¿Cómo funciona?, ¿Para qué sirve?
¡Hola!
Laravel es un marco de aplicación web de código abierto escrito en PHP que sigue el patrón arquitectónico Model-View-Controller (MVC). Fue creado por Taylor Otwell y lanzado en 2011. Laravel proporciona herramientas poderosas para crear aplicaciones web de forma rápida y sencilla. Tiene una amplia gama de funciones, como enrutamiento, autenticación, sesiones, almacenamiento en caché, migraciones de bases de datos y más.
En este artículo, discutiremos los conceptos básicos de Laravel, incluido cómo instalarlo en su sistema, crear vistas usando plantillas Blade, usar migraciones para la administración de bases de datos, usar controladores para enrutar solicitudes a funciones relevantes y modelos para interactuar con bases de datos.
Índice
- 1. Conceptos básicos de Laravel
- 2. Instalación de Laravel (Windows, Linux y MacOS)
- 3. Que son las vistas Laravel Blade
- 4. Crear Migraciones en Laravel para la base de datos
- 5. Crear y usar Controladores de Laravel
- 6. Creación y uso de los Modelos en Laravel
- 7. Rutas en Laravel
- 8. Ejecutar la Aplicación Laravel
Conceptos básicos de Laravel
Laravel es un marco web de código abierto que se basa en el lenguaje de programación PHP. Fue lanzado inicialmente en 2011 y desde entonces se ha convertido en uno de los frameworks más populares para desarrollar aplicaciones web. En 2021, se lanzó Laravel 9 con una serie de nuevas características y mejoras que lo hacen aún más poderoso y eficiente para los desarrolladores.
En 2023, Laravel seguirá siendo una de las mejores opciones para el desarrollo web debido a su escalabilidad, solidez y flexibilidad. El marco proporciona una amplia gama de funciones, como enrutamiento, autenticación, autorización, Almacenamiento en caché y muchas más, que facilitan a los desarrolladores la creación de aplicaciones complejas de forma rápida y eficiente. Además, también admite múltiples bases de datos como MySQL, PostgreSQL, SQLite y muchas más, lo que lo hace ideal para proyectos a gran escala.
En general, Laravel es una excelente opción para desarrollar aplicaciones web debido a su facilidad de uso y sus potentes funciones que ayudan a los desarrolladores a crear aplicaciones complejas rápidamente sin comprometer la calidad o el rendimiento.
Instalación de Laravel (Windows, Linux y MacOS)
Asumimos que ya tienes instalado y configurado Composer en tu sistema, ejecuta el siguiente comando para crear una nueva App Laravel, (omite este paso si ya tienes la aplicación instalada)
composer create-project laravel/laravel mi-primer-proyecto-laravel-9
Que son las vistas Laravel Blade
Las vistas de Laravel son la parte más importante de cualquier proyecto de Laravel, ya que proporcionan una forma de representar el resultado de una aplicación. Las vistas están diseñadas para mostrar datos en un formato estructurado, como HTML, y se pueden usar para crear páginas web dinámicas.
Todas las vistas se almacenan en app/resources/views
como vemos en la siguiente imagen:
Un ejemplo de archivo.blade.php
puede ser el siguiente
@extends('app')
@section('content')
@if(session('success'))
<h1>{{session('success')}}</h1>
@endif
<main class="login-form">
<div class="cotainer">
<div class="row justify-content-center">
<div class="col-md-4">
<div class="card">
<h3 class="card-header text-center">Formulario Login</h3>
<div class="card-body">
<form method="POST" action="{{ route('customlogin') }}">
@csrf
<div class="form-group mb-3">
<input type="text" placeholder="Email" id="email" class="form-control" name="email" required
autofocus>
@if ($errors->has('email'))
<span class="text-danger">{{ $errors->first('email') }}</span>
@endif
</div>
<div class="form-group mb-3">
<input type="password" placeholder="Password" id="password" class="form-control" name="password" required>
@if ($errors->has('password'))
<span class="text-danger">{{ $errors->first('password') }}</span>
@endif
</div>
<div class="form-group mb-3">
<div class="checkbox">
<label>
<input type="checkbox" name="remember"> Recuerdame
</label>
</div>
</div>
<div class="d-grid mx-auto">
<button type="submit" class="btn btn-dark btn-block">Enviar</button>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</main>
@endsection
Crear Migraciones en Laravel para la base de datos
LLas migraciones de Laravel son una poderosa herramienta que permite a los desarrolladores crear, modificar y administrar fácilmente las tablas de la base de datos. Con Laravel Migrations, los desarrolladores pueden crear rápida y fácilmente nuevas bases de datos, modificar bases de datos existentes y realizar un seguimiento de los cambios realizados en la base de datos a lo largo del tiempo.
Las migraciones en Laravel se gestionan a través de la herramienta de línea de comandos php artisan. Esta herramienta de línea de comandos proporciona comandos para crear migraciones, ejecutar migraciones, revertir migraciones y más. Al usar estos comandos, los desarrolladores pueden crear rápidamente nuevas tablas o modificar las existentes con solo unos pocos comandos simples.
1. Creamos la Migración en Laravel mediante php artisan
Para crear nuestra migración debemos ir a nuestra terminal en nuestro proyecyo y ejecutar el siguiente comando
php artisan make:migration create_nombre_de_la_tabla_en_plural_table
En nuestro caso quedaría así
php artisan make:migration create_clientes_table
2. Directorio de migraciones y migración creada
Cuando ejecutamos el comando del paso anterior se nos generará un archivo en app/database/migrations
en nuestro caso es el último archivo(2023_01_10_131907_create_clientes_table.php
)
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('clientes', function (Blueprint $table) {
$table->id();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('clientes');
}
};
Explicación:
Vemos dos funciones:
create:
Es la función que crea la tabla con los campos agregados.
En el ejemplo crea un campo llamado id tipo autoincremental
, y los campos updated_at
y created_at
timestamp
down:
Al ejecutar un rollback nos elimina esta tabla
3. Ejecutar Migración
Una vez hemos terminado de modificar nuestro archivo de la migración deberemos ejecutar la migración para crear la tabla en nuestra base de datos, para ello ejecutamos el siguiente comando
php artisan migrate
Crear y usar controladores en Laravel
Los controladores de Laravel se utilizan para gestionar las solicitudes de los usuarios y controlar el flujo de datos entre el modelo y la vista. Los controladores también proporcionan métodos para manejar diferentes tipos de solicitudes, como GET, POST, PUT, DELETE y más.
Crear Controlador
Para crear un controlador en Laravel ejecutamos el siguiente comando:
php artisan make:controller CombreControladorController
En nuestro caso:
php artisan make:controller ClienteController
Directorio controladores Laravel y controlador creado
Podemos ver el controlador que acabamos de crear en:
Este será el controlador que hemos creado:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class ClienteController extends Controller
{
//
}
Creación y uso de los Modelos en Laravel
Los modelos de Laravel nos permiten realizar acciones en nuestra base de datos, gracias a Eloquent podemos evitar la ejecución de tareas repetitivas como es el UpperCamelCase que poniendo la tabla en plural y el modelo de laravel en singular nos soluciona estas tareas. Es decir si tenemos una tabla llamada Users nuestro modelo se debe llamar User para que haga este “enlazamiento” así como si tenemos la tabla cliente_ventas nuestro modelo se deberá llamar ClienteVenta.
Crear Modelo en Laravel
Para crear un Modelo en Laravel ejecutamos el siguiente comando:
php artisan make:model NombreModelo
En nuestro caso:
php artisan make:model Cliente
Directorio Modelos Laravel y modelo creado
Podemos ver el modelo recién creado en:
Este será el modelo que hemos creado:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Cliente extends Model
{
use HasFactory;
}
Rutas en Laravel
El sistema de rutas de Laravel es muy fácil de manejar y muy ponente, con el sistema de rutas de Laravel crearemos todas las rutas de nuestra aplicación tanto las más sencillas como las más complejas.
Si nos dirigimos a la carpeta routes nos encontraremos dos archivos:
web.php
: Almacena las rutas para nuestra web
api.php
: almacena las rutas para crear APIs en nuestra aplicación
Directorio con las rutas de nuestra aplicación Laravel
Ejemplo de enrutamiento de nuestra aplicación laravel
<?php
use App\Http\Controllers\AuthController;
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
*/
Route::get('/', [AuthController::class, 'index'])->name('home');
Route::post('/custom-login', [AuthController::class, 'login'])->name('customlogin');
Route::get('/logados', [AuthController::class, 'logados'])->name('logados');
Ejecutar la Aplicación Laravel
Finalmente, necesitamos ejecutar la aplicación en Laravel, para ello vamos a la terminal en nuestro proyecto y ejecutamos:
php artisan serve
Una vez ejecutamos el comando, si vamos a nuestro navegador y seguimos la siguiente url tendremos nuestra aplicación.
http://127.0.0.1:8000/