Crear proyecto de Laravel
1.1 Creación del proyecto Laravel
Para crear un nuevo proyecto utilizando el framework Laravel, se debe ejecutar el siguiente comando desde la terminal. Este comando descarga e instala automáticamente la estructura base del proyecto junto con todas sus dependencias.
composer create-project laravel/laravel nombre_del_proyecto
Una vez finalizada la instalación, se generará una carpeta con el nombre especificado, la cual contendrá todos los archivos necesarios para comenzar el desarrollo de la aplicación.
1.2 Ingresar a la carpeta
Después de crear el proyecto, es necesario ingresar a la carpeta generada para poder ejecutar los comandos de configuración y desarrollo.
cd nombre_del_proyecto
ste comando posiciona la terminal dentro del directorio raíz del proyecto Laravel.
1.3 Instalación de Node.js y npm
Laravel utiliza Node.js y npm (Node Package Manager) para administrar las dependencias del frontend, compilar archivos CSS y JavaScript, así como ejecutar herramientas modernas de desarrollo. Por ello, es necesario instalar previamente Node.js, el cual incluye npm de forma predeterminada.
Una vez instalado, se recomienda verificar la instalación mediante los siguientes comandos:
node -v
npm -v
1.4 Instalación de dependencias del proyecto
Con el proyecto creado y Node.js instalado, se procede a descargar todas las dependencias definidas en el archivo package.json mediante el siguiente comando:
npm install
Este proceso instala las bibliotecas necesarias para la compilación y funcionamiento de los recursos frontend de la aplicación.
1.5 Compilación de recursos frontend
Una vez instaladas las dependencias, Laravel utiliza Vite para compilar los archivos CSS y JavaScript del proyecto. Para ello se pueden utilizar los siguientes comandos:
npm run build
npm run dev
Este comando inicia el servidor de desarrollo y recompila automáticamente los cambios realizados en los archivos frontend.
1.6 Instalación de Alpine.js
Alpine.js es un framework ligero de JavaScript que permite agregar interactividad a las vistas de Laravel de forma sencilla y eficiente.
Para instalar Alpine.js se ejecuta el siguiente comando:
npm install alpinejs
En el archivo resources\js\app.js se debe de colocar lo siguiente:
import Alpine from 'alpinejs';
window.Alpine = Alpine;
Alpine.start();
1.7 Instalación de Spatie Laravel Permission
Spatie Laravel Permission es un paquete ampliamente utilizado para implementar la gestión de roles y permisos dentro de aplicaciones Laravel. Este paquete facilita el control de acceso basado en roles y permisos asignados a los usuarios.
Para instalar el paquete se ejecuta el siguiente comando:
composer require spatie/laravel-permission
Despues deben de mostrar las migraciones con el siguiente comando: php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider"
1.8 Instalación de Laravel Breeze
Laravel Breeze es un paquete oficial que proporciona una implementación sencilla del sistema de autenticación de Laravel. Su instalación genera automáticamente las vistas, rutas, controladores y componentes necesarios para funcionalidades como inicio de sesión, registro de usuarios, recuperación de contraseña y panel principal de la aplicación.
Para instalar Laravel Breeze se debe ejecutar el siguiente comando desde la terminal:
composer require laravel/breeze --dev
Este comando descarga e instala el paquete Breeze como una dependencia de desarrollo dentro del proyecto.
Una vez completada la instalación, se debe ejecutar el siguiente comando para generar los archivos de autenticación:
php artisan breeze:install
Durante la instalación, Laravel solicitará seleccionar la tecnología que se utilizará para la interfaz de usuario. Para este proyecto se seleccionó la opción Blade with Alpine, ya que proporciona una estructura sencilla basada en vistas Blade y componentes Alpine.js.
Posteriormente, el asistente solicitará información adicional, como la habilitación del modo oscuro y el framework de pruebas a utilizar. Una vez finalizado el proceso, Breeze generará automáticamente la estructura de autenticación del proyecto.
Entre los archivos y directorios creados se encuentran:
- resources/views/auth/
- resources/views/layouts/
- resources/views/profile/
- resources/views/dashboard.blade.php
- routes/auth.php
Estos recursos incluyen las vistas para inicio de sesión, registro de usuarios, recuperación de contraseña, navegación principal, perfil de usuario y panel principal de la aplicación.
Arquitectura de Laravel
Recomendación
Usar en visual studio el paquete de iconos de Material Icon Theme para que sea mas fácil ver la estructura de laravel.
La arquitectura de Laravel se organiza de manera lógica para separar la configuración, la lógica de negocio y los recursos estáticos, estas son sus carpetas principales:
- app/: Incluyendo los Controladores (Controllers) y los Modelos (Models).
- config/: Se definen todos los archivos de configuración de la aplicación (base de datos, correos, sesiones, y más que se necesite integrar ).
- database/: Contiene los archivos para estructurar y poblar la base de datos, como las migraciones (migrations), seeders y factories.
- public/: Es el directorio expuesto, contiene los recursos públicos como imágenes, hojas de estilo.
- resources/views: Almacena las vistas de la aplicación.
- routes/: Aquí se definen todas las rutas o URLs de la aplicación, separando las rutas web (web.php) de las rutas para APIs (api.php).
- storage/: Destinado a los archivos que genera la aplicación durante su ejecución, como logs de errores, cachés de vistas, sesiones y archivos subidos por los usuarios.
Crear un Modelo
php artisan make:model NombreModelo
Ejemplo:
php artisan make:model Producto
Crear una Migración
php artisan make:migration create_productos_table
Ejemplo:
php artisan make:migration create_productos_table
Ejemplo de campos para la migración
Crear un Controlador
php artisan make:controller ProductoController --resource
Crear Modelo + Migración + Controlador Resource
php artisan make:model Servicio -mcr
2. Configuración de la Base de Datos PostgreSQL
2.1 Instalación de PostgreSQL
Para el desarrollo del proyecto se utilizará PostgreSQL como sistema gestor de bases de datos. PostgreSQL es una base de datos relacional de código abierto que destaca por su estabilidad, seguridad y alto rendimiento, además de contar con soporte nativo en Laravel.
Para iniciar la instalación, se debe acceder al sitio oficial de PostgreSQL:
https://www.postgresql.org/download/
Una vez dentro del portal, se debe seleccionar el sistema operativo correspondiente. En este caso se eligió la opción Windows.
Posteriormente, el sitio redireccionará a la página de EnterpriseDB (EDB), donde se encuentran disponibles los instaladores oficiales de PostgreSQL para Windows. Se debe seleccionar la versión más reciente disponible para la arquitectura del sistema operativo.
2.2 Selección de componentes
Durante el proceso de instalación se mostrará una ventana para seleccionar los componentes que serán instalados. Se recomienda mantener activadas las opciones predeterminadas:
- PostgreSQL Server
- pgAdmin 4
- Stack Builder
- Command Line Tools
Estos componentes permiten administrar la base de datos mediante interfaz gráfica y línea de comandos.
2.3 Configuración de contraseña
Posteriormente, el instalador solicitará definir una contraseña para el usuario administrador de PostgreSQL denominado postgres. Esta contraseña será utilizada posteriormente para conectarse a la base de datos desde Laravel.
Es importante conservar esta información en un lugar seguro.
2.4 Configuración del puerto
El instalador solicitará especificar el puerto de comunicación que utilizará PostgreSQL. Se recomienda conservar el puerto predeterminado: 5432
Este puerto es utilizado por defecto por PostgreSQL y será configurado posteriormente dentro del proyecto Laravel.
2.5 Configuración regional
En la sección de configuración regional se puede mantener la opción predeterminada (DEFAULT), la cual establece la configuración regional adecuada para el nuevo clúster de base de datos.
2.6 Verificación de la instalación
Una vez concluida la instalación, PostgreSQL quedará disponible en el sistema. Para comprobar que la instalación fue realizada correctamente, se puede abrir la herramienta SQL Shell (psql) desde el menú de inicio de Windows. Al ejecutar la aplicación, se solicitarán algunos datos de conexión, como el servidor, usuario, contraseña y puerto configurados durante la instalación.
2.7 Creación de la base de datos
Después de iniciar sesión en PostgreSQL, se debe crear la base de datos que será utilizada por el proyecto Laravel mediante el siguiente comando:
CREATE DATABASE bd_prueba;
Una vez ejecutado el comando, PostgreSQL generará la base de datos denominada bd_prueba, la cual almacenará toda la información de la aplicación.
2.8 Configuración de PostgreSQL en Laravel
Finalmente, se debe configurar la conexión dentro del archivo .env del proyecto Laravel modificando los siguientes parámetros:
- DB_CONNECTION=pgsql
- DB_HOST=127.0.0.1
- DB_PORT=5432
- DB_DATABASE=bd_prueba
- DB_USERNAME=postgres
- DB_PASSWORD=contraseña_configurada
Una vez guardados los cambios, Laravel utilizará PostgreSQL como motor de base de datos para ejecutar migraciones, almacenar información y gestionar los registros de la aplicación.
Y después para crear la base de datos que se va usar, ejecutar CREATE DATABASE bd_prueba; y para consultar las bases de datos usar \l y para ver las tablas de la base de datos es con el comando \dt
Usar el gestor de base de datos TablePlus
Seleccionar PostgreSQL
Configurar la conexión a la base de datos
Configurar archivo php.ini de xampp
Ahora una vez abierto el archivo en un editor, buscar las variables:
;extension=pdo_pgsql
;extension=pgsql
y quitar los ; para que se habilite
Configurar archivo. env, se define la conexión a la base de datos, por ejemplo:
DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_DATABASE=bd_prueba
DB_USERNAME=postgres
DB_PASSWORD=la_contraseña
Para hacer migraciones a la base de datos, se ejecuta el comando: php artisan migrate
Semillas
Una semilla (Seeder) es una clase de Laravel que permite insertar datos iniciales o de
En lugar de capturar los datos manualmente cada vez que se crea la base de datos, se ejecuta una semilla y Laravel los inserta automáticamente.
Crear una semilla
Para crear una semilla de roles y permisos:
php artisan make:seeder RolesAndPermissionsSeeder
Esto generará:
database/
└── seeders/
└── RolesAndPermissionsSeeder.php
El comando para que se inicie la semilla y se inserte en la base de datos es php artisan db:seed --class=RolesAndPermissionsSeeder