Cheat Sheet

Resumen de acciones de laravel

Instalación:

Debemos tener instalado composer

**Instalamos

el instalador de proyectos de laravel
Ahora ya podemos crear un proyecto nuevo de laravel
1
laravel new NuevoProyectoLaravel

composer create-project --prefer-dist laravel/laravel project-name
2. Artisan Commands:
 Create a controller:

bash
Copy code
php artisan make:controller ControllerName
Create a model:

bash
Copy code
php artisan make:model ModelName
Run migrations:

bash
Copy code
php artisan migrate
3. Routing:
 Define a route in routes/web.php:
 php
 Copy code
 Route::get('/route', 'ControllerName@method');
4. Views:
 Blade template:
 php
 Copy code
<p>{{ $variable }}</p>
5. Database:
Eloquent ORM:

php
Copy code
$model = ModelName::find($id);
Query Builder:

php
Copy code
$results = DB::table('table')->get();
6. Middleware:
 Apply middleware in routes:
 php
 Copy code
 Route::get('/admin', 'Controller@method')->middleware('auth');
7. Authentication:
 Create authentication scaffolding:
 bash
 Copy code
 php artisan make:auth
8. Validation:
 Validate requests in controllers:
 php
 Copy code
 $validatedData = $request->validate([
 'field' => 'required|numeric',
 ]);
9. Testing:
 Run tests:
 bash
 Copy code
 php artisan test
10. Artisan Tinker:
  Interact with your application:
  bash
  Copy code
  php artisan tinker

## 
## Rutas
## Artisan
## MVC

1 - Helper en Laravel

Helpers en Laravel

¿Qué son los Helpers?

Helpers en Laravel son funciones globales que proporcionan una manera conveniente y eficiente para realizar tareas comunes en la programación con Laravel. Estas funciones están disponibles globalmente en cualquier parte de tu aplicación.

Grupos Principales de Helpers

Helpers de Rutas

  • route(): Genera una URL para una ruta nombrada.
  • url(): Genera una URL absoluta.
  • action(): Genera una URL para un controlador y método específicos.

Helpers de Strings

  • str_*: Varias funciones para manipular strings.
  • __(): Traduce el texto dado según tu localización.

Helpers de Arrays

  • array_*: Funciones para manipular arrays.
  • head(): Devuelve el primer elemento de un array.
  • last(): Devuelve el último elemento de un array.

Helpers de Vistas

  • view(): Genera una nueva vista.
  • response(): Crea una instancia de respuesta.

Helpers de URL

  • asset(): Genera una URL para un asset usando el esquema de URL actual.
  • secure_asset(): Genera una URL segura para un asset.

Helpers Generales

  • app(): Accede a la instancia del contenedor de servicios.
  • config(): Obtiene o establece valores de configuración.

Crear un helper

Creamos una carpeta en app:

app\helper

Facade Vs Helper

https://medium.com/@azimidev/laravel-facades-vs-helpers-understanding-the-differences-and-use-cases-007d41a1b257

Laravel Facades vs. Helpers: Understanding the Differences and Use Cases

img.png

When developing with Laravel, you’ll often come across two powerful tools: Facades and Helpers. Both are designed to simplify your code and make it more readable, but they serve different purposes and are used in different scenarios. In this article, we’ll explore what Laravel Facades and Helpers are, their differences, and when to use each.

What are Laravel Facades? Facades provide a “static” interface to classes that are available in the application’s service container. They allow you to call methods in a class without having to instantiate them, making your code cleaner and more concise.

Example: Using Facades

1
2
3
4
use Illuminate\Support\Facades\Cache;

Cache::put('key', 'value', $minutes);
$value = Cache::get('key');
Here, Cache is a facade that provides access to the caching service in Laravel.

1
2
3
$value = array_get($array, 'key', 'default');
$slug = str_slug('Laravel Facades vs Helpers');
$url = route('home');
Helpers are designed to be straightforward to use, offering quick solutions for common tasks.

Key Differences Implementation:

Facades: Act as static proxies to underlying classes in the service container. Helpers: Simple, procedural functions. Dependency Injection:

Facades: Work with Laravel’s service container, making it easier to manage dependencies and mock services in tests. Helpers: Do not support dependency injection, which can make testing more challenging. Readability and Intent:

Facades: This can make code more readable by clearly indicating, which service is being used. Helpers: Provide a quick and dirty way to perform tasks, which can sometimes lead to less readable code. When to Use Facades Dependency Injection: When you need to leverage dependency injection, especially in testing. Readability: When you want to make it clear which service is being utilized. Complex Logic: For more complex interactions with Laravel services. Example: Using a Facade in a Controller

1
2
3
4
5
6
use Illuminate\Support\Facades\Mail;

public function sendWelcomeEmail($user)
{
Mail::to($user->email)->send(new WelcomeEmail($user));
}

When to Use Helpers Simplicity: For simple tasks where dependency injection is not necessary. Quick Solutions: When you need a quick and straightforward solution. Performance: When you want to avoid the overhead of the service container. Example: Using Helpers in a Blade Template

1
2
<p>{{ ucfirst($user->name) }}</p>
<p>{{ route('profile', ['id' => $user->id]) }}</p>
Conclusion Both Facades and Helpers have their place in Laravel development. Understanding when to use each can help you write cleaner, more maintainable code. Use Facades when you need the power of the service container and dependency injection. Use Helpers for quick, simple tasks. By leveraging both appropriately, you can make the most out of Laravel’s features and improve your development workflow.

1.1 - Vistas

Helpers de Vistas en Laravel

¿Qué son los Helpers de Vistas?

Los helpers de vistas en Laravel son funciones que facilitan el manejo y la renderización de las vistas. Estos helpers permiten una interacción más simple y eficiente con las plantillas Blade del framework.

Cómo helper de vistas, tenemos la función view() de Laravel.

Este helper retorna una instancia de una vista .

Esta función no solo carga y retorna la vista especificada, sino que también permite el encadenamiento de métodos adicionales disponibles en la instancia del objeto de la vista .

Esto facilita la manipulación y personalización de la vista antes de que se envíe al navegador.

Principales Helpers de Vistas

view()

  • Genera una nueva vista.
  • Ejemplo: view('welcome', ['data' => $data]) carga la vista welcome con datos.

view()->make()

  • Similar a view(), pero con una sintaxis alternativa.
  • Ejemplo: view()->make('welcome', ['data' => $data]).

view()->exists()

  • Comprueba si una vista existe.
  • Ejemplo: view()->exists('welcome') devuelve true si la vista welcome existe.

view()->first()

  • Intenta renderizar la primera vista existente de una lista.
  • Ejemplo: view()->first(['custom', 'default']) carga la primera vista que exista entre custom y default.

view()->share()

  • Comparte una variable en todas las vistas.
  • Ejemplo: view()->share('key', 'value') hace que key esté disponible globalmente en todas las vistas.

view()->composer()

  • Asigna datos a una vista cada vez que se carga.
  • Ejemplo: view()->composer('welcome', function ($view) { ... }).

view()->creator()

  • Similar a view()->composer(), pero se ejecuta cuando la vista se crea.
  • Ejemplo: view()->creator('welcome', function ($view) { ... }).

Estos helpers son fundamentales para la gestión de vistas en Laravel, permitiendo un flujo de trabajo más ágil y una mayor flexibilidad en la renderización y el manejo de datos en las vistas.

  • Ejemplo: url()->previous()

1.2 - Rutas

Helpers de Laravel para Rutas

Laravel proporciona varios helpers útiles para trabajar con rutas.
Estos son algunos de los más importantes:

route('nombre_ruta')

  • Genera una URL para una ruta nombrada.
  • Podemos pasar parámetros a la ruta como un array asociativo [‘variable’=>valor]
route('user.profile', ['id' => 1]);

url('path')

  • Genera una URL absoluta para el path dado.
  • Ejemplo: url('/user')

redirect()->route('nombre_ruta')

  • Redirige a una ruta nombrada.
  • Ejemplo: redirect()->route('home')

action('NombreControlador@metodo')

  • Genera una URL para el controlador y método especificados.
  • Ejemplo: action('UserController@show', ['id' => 1])

back()

  • Redirige al usuario a la ubicación anterior.
  • Ejemplo: return back()

current()

  • Obtiene la URL actual.
  • Ejemplo: url()->current()

previous()

  • Obtiene la URL previa a la actual.
  • Ejemplo: url()->previous()

1.3 - Request en Laravel

Helpers y métodos para obtener datos de la Request en Laravel

En Laravel podemos acceder a los datos de la petición HTTP usando:

  • El helper global request()
  • La fachada Request (Illuminate\Support\Facades\Request)
  • Inyección de la clase Illuminate\Http\Request

A continuación, los métodos más usados:

request('clave')

  • Obtiene el valor de la clave indicada, buscando en GET, POST, JSON, etc.
  • Ejemplo:
    request('family_id');

request()->input('clave')

  • Equivalente a request('clave').
  • Ejemplo:
    request()->input('family_id');

request()->query('clave')

  • Obtiene el valor solo de la query string (?param=valor).
  • Ejemplo:
    request()->query('family_id');

request()->post('clave')

  • Obtiene el valor solo del cuerpo POST.
  • Ejemplo:
    request()->post('family_id');

request()->all()

  • Obtiene todos los datos de la petición (GET, POST, JSON, etc.)
  • Ejemplo:
    request()->all();

request()->only([...])

  • Obtiene solo las claves especificadas.
  • Ejemplo:
    request()->only(['name', 'email']);

request()->except([...])

  • Obtiene todos los datos excepto las claves indicadas.
  • Ejemplo:
    request()->except(['password']);

request()->has('clave')

  • Devuelve true si la clave existe (aunque esté vacía).
  • Ejemplo:
    request()->has('family_id');

request()->filled('clave')

  • Devuelve true si la clave existe y no está vacía.
  • Ejemplo:
    request()->filled('family_id');

request()->missing('clave')

  • Devuelve true si la clave no existe o es null.
  • Ejemplo:
    request()->missing('family_id');

request()->ajax()

  • Devuelve true si la petición es AJAX.
  • Ejemplo:
    request()->ajax();

request()->isJson()

  • Devuelve true si la petición es de tipo JSON.
  • Ejemplo:
    request()->isJson();

request()->method()

  • Devuelve el método HTTP (GET, POST, PUT…).
  • Ejemplo:
    request()->method();

request()->isMethod('metodo')

  • Comprueba si el método HTTP es el indicado.
  • Ejemplo:
    request()->isMethod('post');

request()->fullUrl()

  • Devuelve la URL completa con query string.
  • Ejemplo:
    request()->fullUrl();

request()->url()

  • Devuelve la URL sin query string.
  • Ejemplo:
    request()->url();

request()->path()

  • Devuelve solo el path de la URL.
  • Ejemplo:
    request()->path();

Uso con la fachada Request

Podemos hacer lo mismo usando la fachada:

use Illuminate\Support\Facades\Request;

Request::input('family_id');
Request::query('family_id');
Request::post('family_id');
Request::all();
Request::only(['name', 'email']);
Request::fullUrl();

📌 Nota: Tanto request() como Request usan internamente el mismo objeto Illuminate\Http\Request.


Tabla resumen de métodos principales

Método Origen de datos Descripción Ejemplo
request('clave') GET, POST, JSON Busca la clave en todos los datos de la petición request('id')
input('clave') GET, POST, JSON Igual que request('clave') request()->input('id')
query('clave') Query string (?param=) Solo busca en los parámetros de la URL request()->query('page')
post('clave') Cuerpo POST Solo busca en el contenido del formulario o cuerpo POST request()->post('email')
all() GET, POST, JSON Devuelve todos los datos request()->all()
only([...]) GET, POST, JSON Devuelve solo las claves indicadas request()->only(['name'])
except([...]) GET, POST, JSON Devuelve todos excepto las claves indicadas request()->except(['password'])
has('clave') GET, POST, JSON Existe la clave (aunque esté vacía) request()->has('name')
filled('clave') GET, POST, JSON Existe y tiene valor no vacío request()->filled('name')
missing('clave') GET, POST, JSON No existe o está vacía request()->missing('token')
ajax() Encabezado X-Requested-With Comprueba si la petición es AJAX request()->ajax()
isJson() Cabecera Content-Type Comprueba si es JSON request()->isJson()
method() Método HTTP Devuelve el método usado (GET, POST, etc.) request()->method()
isMethod('metodo') Método HTTP Comprueba si el método es el indicado request()->isMethod('post')
fullUrl() URL completa Devuelve la URL con query string request()->fullUrl()
url() URL base Devuelve la URL sin query string request()->url()
path() URL base Devuelve solo el path request()->path()

2 - Artisan (CLI)

Introducción a Artisan en Laravel

Artisan es la interfaz de línea de comandos (CLI) incluida con Laravel.
Ofrece una variedad de comandos útiles para realizar tareas comunes de desarrollo y mantenimiento de aplicaciones. La palabra artisan viene de artesano intentando reflejar la sencillez y eficiencia de su utilización

Características principales

  • Generación de Código: Artisan facilita la creación de modelos, controladores, y otras clases necesarias en aplicaciones Laravel.
  • Migraciones de Bases de Datos: Permite manejar fácilmente las migraciones de bases de datos.
  • Tareas Programadas: Proporciona una forma sencilla de programar tareas que deben ejecutarse periódicamente.
  • Entorno de Pruebas: Ofrece comandos para ejecutar pruebas y otros chequeos.

Artisan es una herramienta esencial en el desarrollo de Laravel , que aumenta la eficiencia y simplifica muchas tareas de programación.

Creando un comando en artisan

Podemos crear comandos presonalizados para trabajar en nuestros proyectos. Para ello seguiremos las siguientes acciones

Creando un comando con artisan
;Creamos un fichero con command con una clase para especificar el comando
1
php artisan make:command ClearLog
![Carpeta de comando](folderCommand.png)

Ejemplo de Uso

Para ver una lista de todos los comandos disponibles, puedes ejecutar:

php_ artisan list

Clasificación de los Principales Comandos de Artisan en Laravel

Clasificación de los Principales Comandos de Artisan en Laravel


Artisan, el CLI de Laravel, ofrece una amplia gama de comandos útiles. A continuación se presentan algunos de los comandos más importantes agrupados por su funcionalidad.

Comandos de Generación de Código

Estos comandos ayudan en la creación rápida de clases comúnmente usadas.

  • Controladores: php artisan make:controller
  • Modelos: php artisan make:model
  • Migraciones: php artisan make:migration
  • Seeders: php artisan make:seeder
  • Factories: php artisan make:factory
  • Eventos: php artisan make:event
  • Listeners: php artisan make:listener
  • Middlewares: php artisan make:middleware

Comandos de Base de Datos y Migraciones

Utilizados para gestionar bases de datos y ejecutar migraciones.

  • Ejecutar Migraciones: php artisan migrate
  • Revertir Migraciones: php artisan migrate:rollback
  • Refrescar Migraciones: php artisan migrate:refresh
  • Resetear Migraciones: php artisan migrate:reset

Comandos de Tareas Programadas

Para manejar tareas programadas o cron jobs.

  • Ejecutar Tareas Programadas: php artisan schedule:run

Comandos de Caché

Estos comandos son útiles para gestionar diferentes tipos de caché.

  • Limpiar Caché: php artisan cache:clear
  • Limpiar Caché de Configuración: php artisan config:clear
  • Limpiar Caché de Rutas: php artisan route:clear
  • Limpiar Caché de Vistas: php artisan view:clear

Comandos de Pruebas

Para ejecutar pruebas unitarias y de integración.

  • Ejecutar Pruebas: php artisan test

Comandos de Rutas

Para trabajar con rutas.

  • Listar Rutas: php artisan route:list

Otros Comandos Útiles

  • Limpiar Cache de la Aplicación: php artisan optimize
  • Crear Enlace Simbólico para Almacenamiento: php artisan storage:link

3 - Directivas Blade

Directivas de Blade en Laravel

¿Qué son las Directivas de Blade?

Las directivas de Blade en Laravel son instrucciones especiales en las plantillas Blade que proporcionan una forma sencilla y expresiva de:

  • Controlar la lógica de las vistas
  • Permiten incorporar estructuras de control de PHP
  • Funcionalidades específicas de Laravel directamente en las plantillas Blade.

Principales Directivas de Blade

Estructuras de Control

  • @if, @elseif, @else : Condicionales.
  • @foreach, @for, @while : Bucles.
  • @switch, @case, @break, @default : Estructura switch.

Autenticación y Autorización

  • @auth, @guest : Directivas para comprobar si el usuario está autenticado o no.
  • @can, @cannot : Directivas para comprobar permisos basados en roles.

Inclusión y Herencia de Plantillas

  • @extends : Define la plantilla padre.
  • @section, @yield : Define y muestra una sección de contenido.
  • @include : Incluye otra plantilla Blade.

Otros

  • @csrf : Genera un campo de token CSRF.
  • @method : Define un método HTTP para formularios.
  • @slot, @component : Trabajar con componentes y slots.
  • @php, @endphp : Ejecutar código PHP directamente.

Estas directivas simplifican la implementación de lógica compleja en las vistas, manteniendo el código limpio y fácil de leer. Blade convierte estas directivas en código PHP apropiado durante el proceso de renderizado de las vistas.