The Pokedex Project — Creando un Pokedex con Laravel (1)

Chris Lopez
5 min readJun 25, 2021

En previas publicaciones creamos un Pokedex con PHP puro, fuimos paso a paso desarrollando nuestras herramientas que íbamos a necesitar. Que al final si prestamos atención, hicimos un mini framework, ya que ese código que creamos lo podemos re usar para cualquier proyecto que tengamos, obviamente es algo básico y faltaría muchas características para poder desplegar o migrar a producción.

Si te perdiste de las series con PHP Vanilla aquí puedes consultar las publicaciones:

También puedes consultar el repositorio aquí:

Recordando el motivo de estas publicaciones es tratar de ver el costo beneficio de desarrollar un proyecto con Lenguaje Nativo en este caso PHP y con un framework del lenguaje en este caso Laravel. Por consiguiente es turno de Laravel para desarrollar el Pokedex.

Porque Laravel?

Para decidir sobre que herramienta usar a la hora de desarrollar un proyecto, en mi caso me baso en tres cosas: comunidad, ecosistema, curva de aprendizaje y claro, que este ligado al lenguaje que este usando o que tenga experiencia.

Laravel cumple estas características, es un framework popular ya que inclusive a rebasado a otros frameworks en Stars en github como RubyOnRails, Django y Flask. Y no se diga a los del propio lenguaje.

Por este motivo la comunidad es enorme, e inclusive tienen un foro que se llama Laracast que es donde residen tutoriales y te pueden ayudar con dudas sobre Laravel.

El entorno de Laravel ha ido creciendo al paso de los años, con sus 10 años ya cuenta con herramientas que facilitan hasta un despliegue al servidor con el código base, paneles de administración autogenerados, apis de autenticación, despliegues de entornos de desarrollo, etc. Esto hace que en nuestro proyecto sea enormemente escalable y nos ahorra tiempo a la hora de desarrollarlo.

Ya que esta desarrollado en PHP, Laravel adopta la curva de aprendizaje del mismo lenguaje por lo que es fácil crear proyectos, instalarlos y configurarlos. Otro punto a tomar en cuenta es que aunque adopte el patrón de diseño MVC, su arquitectura es flexible, ya que puedes desarrollar sin usar los controllers o los modelos.

Antes de empezar, los pre requisitos.

Para empezar a desarrollar nuestro proyecto necesitaremos lo siguiente en nuestros equipos:

  • Composer (versión actual)
  • Docker y Docker Compose(versión actual)
  • PHP ≥7.4
  • MySQL ≥ 5.6
  • Node JS con NPM (versión actual)
  • Git(versión actual)

Otro de los requisitos importantes antes visto en la serie de PHP Vanilla de este mismo proyecto, es el sistema operativo, todos nuestros comandos se ejecutaran en terminal de Ubuntu 20.04. Aunque se supone que el código desarrollado aquí sirve en cualquier ambiente de desarrollo montado en otro sistema operativo(Windows y Mac) con Docker; la instalación de Docker en estos sistemas es diferente.

Si el entorno de desarrollo lo vas a instalar de forma manual, recuerda que debes instalar estas extensiones de PHP o habilitarlas:

  • pdo_mysql
  • mbstring
  • exif
  • pcntl
  • bcmath
  • gd

Instalación de Laravel Installer.

Para instalar un proyecto de Laravel hay muchas formas, y aumentaron con la versión mas actual del framework, la forma mas común es instalar el paquete instalador de Laravel(laravel installer) con composer, el cual nos permitirá ejecutar el comando “laravel” y con este comando crearemos el proyecto.

Para lograr instalar el comando “laravel” usaremos Composer, entonces ejecutaremos lo siguiente:

composer global require laravel/installer

Ya con esta característica instalada podremos ejecutar el comando “laravel” y crear proyectos.

Creación y configuración de nuestro proyecto.

Alternativa Clásica

Para crear nuestro proyecto con esta alternativa, ejecutaremos lo siguiente:

laravel new pokedex --git

Este comando nos creara toda la estructura y bajara el core de Laravel, asi como sus dependencias, paquetes, creara la estructura de directorios y configurara nuestro proyecto.

La opción “ — — git” nos indica que aparte de instalar el proyecto, nos creara el repositorio para nuestro proyecto; puedes omitir esta opción si no la necesitas ya que es opcional. Esta opción viene disponible en la versión de “Laravel Installer 4.2”.

Alternativas para la creación de nuestro proyecto

Si no se pudo instalar el “Laravel Installer” hay alternativas para crear el proyecto.

Por medio de Composer

Para esto debemos de ejecutar el siguiente comando:

composer create-project laravel/laravel pokedex

Tendrá el mismo efecto que “Laravel Installer” solo que el comando es mas largo y difícil de recordar por así decirlo. Aunque se puede crear un alias en el bash para ejecutar el comando.

Por medio de CURL

Esta opción es nueva y esta disponible a partir de la versión 8.x de Laravel

curl -s https://laravel.build/pokedex | bash

Lo que hace es que ejecuta comandos bajados por CURL, revisará la configuración de Docker e instalara las imágenes de Docker para que el proyecto este listo para Laravel Sail(paquete de Laravel para entornos de desarrollo con Docker). Después tendrá el mismo efecto que “Laravel Installer”.

Probar nuestro proyecto instalado

Laravel cuenta con un comando llamado “artisan”, este comando tiene muchas opciones; que iremos viendo cuando desarrollemos mas características en nuestro proyecto por el momento para poder probar que todo se instalo bien en nuestro proyecto, ejecutamos en el directorio de nuestro proyecto:

php artisan serve

Veremos la siguiente pantalla:

Probamos en nuestro browser:

Con esto ya tenemos un proyecto instalado, configurado y ejecutado nuestro proyecto con Laravel.

Configurando un proyecto existente en Laravel.

Supongamos que ya tenemos un proyecto existente y lo clonamos de Github. En este caso solamente tenemos que configurarlo y para esto hacemos lo siguiente:

Instalamos las librerías de Laravel con composer:

composer install

Copiamos o generamos el archivo .env(por buenas practicas nunca se suben los .env al repositorio sino que se crea una copia como por ejemplo: .env.example):

cp .env.example env

Si no tenemos el .env.example, lo creamos con nano:

nano .env

Y ponemos el siguiente contenido:

APP_NAME=Laravel
APP_ENV=local
APP_KEY=
APP_DEBUG=true
APP_URL=http://pokedex-laravel.test

LOG_CHANNEL=stack
LOG_LEVEL=debug

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=pokedex
DB_USERNAME=root
DB_PASSWORD=root
BROADCAST_DRIVER=log
CACHE_DRIVER=file
FILESYSTEM_DRIVER=local
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120
MAIL_MAILER=smtp
MAIL_HOST=mailhog
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=null
MAIL_FROM_NAME="${APP_NAME}"

AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=
AWS_USE_PATH_STYLE_ENDPOINT=false

PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1

MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"

Guardamos el archivo y ejecutamos:

php artisan key:generate

Si tenemos dependencias de Javascript las instalamos y compilamos:

npm install && npm run dev

Una vez hecho esto, corremos el servidor de desarrollo de Laravel:

php artisan serve

Simplemente revisamos en el browser y deberíamos de ver la página de bienvenida de Laravel.

En la siguiente publicación levantaremos un entorno con Laravel Sail, configuraremos nuestras capa de datos para poder acceder a la información del Pokedex. Como también probar nuestros modelos en la configuración de las rutas de Laravel.

Si quieres aprender Laravel a fondo puedes consultar su documentación:

También puedes consultar el repositorio de estas publicaciones:

--

--