Qué es Laravel

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.

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:

Directorio de las vistas de Laravel

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)

Directorio de las migraciones de Laravel
                                
<?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:

Directorio de los controladores de Laravel

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:

Directorio de los modelos de Laravel

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

Directorio de los modelos de 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/