Clona con éxito un proyecto Laravel desde GitHub
En ocasiones, clonar un proyecto desde GitHub para poder seguir aprendiendo, suele ser la salida rápida para muchas personas.
Sin embargo, en muchos casos (y especialmente cuando no cuenta con un archivo README suficientemente detallado) acaba siendo un callejón sin salida, pues como usuarios o desarrolladores noveles, nos faltan destrezas para revisar documentación o hacer la búsqueda correcta en nuestro navegador.
Laravel, es un framework muy bien documentado y con una amplia comunidad de desarrolladores que han nutrido la web de ayudas a casi cualquier error que podamos tener, pero aún así, es común ver personas que se atascan en cuestiones básicas.
Por ello, y tras un problema de un usuario en un grupo de Telegram, decidí crearles un documento que pudiera ser de ayuda -dando por hecho que se tiene instalado de forma global Composer, que se tengan conocimientos básicos sobre PHP, el framework Laravel o el uso de GitHub y Visual Studio Code– y de paso compartirlo desde este artículo, esperando reforzar poco a poco mis propios conocimientos y destrezas además de servir como apoyo para instalaciones futuras.
Primeros pasos.
Tras abrir nuestro editor suelo abrir una consola para así, situarnos en el directorio donde queremos alojar el proyecto y comenzar con el primer comando:
git clone [url-github-project]
Para este ejemplo, tomaré uno de los archivos de dicho grupo:
git clone https://github.com/TexvnOnline/Punto-de-venta-Texvn-Online.git
Con este paso, ya tenemos acceso al proyecto en sí, pero al estar trabajando con Laravel, vamos necesitar dar unos cuantos pasos más.
Instala las dependencias del proyecto.
Al clonar desde GitHub, el archivo .gitignore nos «quita» la carpeta vendor con las librerías que usa el proyecto. Necesitaremos que nos lea cuales son desde nuestro archivo composer.json. Voy a seguir los pasos «a prueba de novatos», esperando incluso posibles errores.
Nos situamos en el directorio clonado y pasamos por consola la siguiente instrucción:
composer install

Vemos que necesitamos actualizar nuestras versiones, por lo que corremos un comando más:
composer update

Con este comando nos termina de instalar las librerías declaradas en el proyecto clonado.
Generando archivo .env y la key del proyecto.
No sólo deja sin carpeta vendor el proyecto descargado cuando lo estamos compartiendo desde git, también nos faltará por motivos obvios de seguridad, el archivo de configuración .env
Por suerte, si que estará en el directorio el archivo .env.example, que podemos tomar como guía.
Podemos hacerlo del modo tradicional con un nuevo archivo y copia-pega, o por línea de comando con la instrucción:
cp .env.example .env
Añado al archivo generado la key de seguridad.
php artisan key:generate

Si te queda algo para personalizar el .env, es el momento
Lo dicho.
Desde el nombre de nuestra aplicación, a la conexión de la base de datos, o cualquier otra variable global que ya tengas disponible (ej: paypal, stripe…).
No creo que sea necesario recordarlo, pero ahí vamos: O ya tienes una base de datos creada, o debes crearla con el nombre que pongas en tu .env .

Crea el enlace simbólico y la carga automática de tus clases
Vas a guardar imágenes, pdf’s… Por ello, necesitarás comunicar tu carpeta storage con tu carpeta public. Por suerte, es con un sólo comando:
php artisan storage:link
Seguro que hay más de un helper añadido para trabajar con las clases creadas, y deben agregarse al cargador automático (queremos evitar los típicos errores de clase no encontrada, verdad?).
composer dump-autoload

Se nos pasaba ya que habrá migraciones con las tablas para nuestra BBDD.
php artisan migrate
🛑Espera!. Revisa si en tu carpeta database hay seeders y factories con datos para llenarla!. Si es el caso, mucho mejor este comando!:
php artisan migrate –seed

Si surgiera algún error con los seeders, es muy posible que sea este:
BadMethodCallException: This cache store does not support tagging.
En ese supuesto iremos a nuestro .env, ya que la configuración de ejemplo suele venir con el campo CACHE_DRIVER=file es incompatible con las tags
Podemos cambiar ese valor a :
CACHE_DRIVER=array o por CACHE_DRIVER=memcache
Probando, probando… 1..2.. si…
Ha llegado la hora de la verdad.
php artisan serve

Ups! 🤦♂️. Por lo visto, algo falló y aunque la consola nos decía que había generado la clave, no lo hizo.
Por suerte, el modo debug:true de nuestro .env nos «canta» lo que pasa y la solución.
Recuerda que la herramienta de debug de Laravel, no solo da muy buenas pistas para saber que error estamos teniendo, sino que además, te suele mostrar la posibilidad de buscar más información a través de Google o Stackoverflow, por ejemplo.
Volvemos a correr el comando php artisan key:generate

Esta vez, ya podemos ver como ha generado la clave de forma automática y correcta.
¿Tendremos nuevos errores?: Lo sabremos volviendo a refrescar nuestro server:

Creo que ya podemos decir: Eureka!…
Al menos de momento.
Es hora de seguir avanzando y aprendiendo!.
Muchas gracias al Proyecto de Cristian Castro (TextOnline), que ha servido de apoyo !.