El principal objetivo de este repo es poder desplegar de forma autom谩tica nuestra aplicaci贸n PHP Slim Framework 4 en Heroku.
Como primer paso, forkeamos este proyecto desde el boton ubicado en la parte superior derecha de la pagina del repositorio.
Una vez forkeado, clonamos el repo con git clone <url del repo>
y agregamos nuestro codigo PHP (SLIM Framework) dentro de la carpeta /app/
.
Luego comiteamos y pusheamos los cambios.
git add .
git commit -m "first commit"
git push -u origin main
Nos dirigimos a la p谩gina de Heroku https://heroku.com/, iniciamos sesi贸n si tenemos cuenta o creamos una.
Heroku al iniciar sesi贸n nos muestra su dashboard, aqu铆 haremos clic en New y luego en Create new app:
En esta secci贸n agregamos el nombre de la app, seleccionamos la regi贸n United States y luego clic en bot贸n Create app
Ahora vamos a la secci贸n Deploy y hacemos clic en la opci贸n de GitHub, la cual nos mostrar谩 nuestro usuario o tendremos que iniciar sesi贸n con GitHub. Despu茅s buscamos el nombre de nuestro repo y aparecer谩 abajo:
Seleccionamos el repo y hacemos clic en Connect
Una vez hecho esto, elegimos la rama de github que queremos deplegar con nuestra aplicaci贸n Heroku, en nuestro caso main
, y hacemos clic en Enable Automatic Deploys. De esta forma, cada vez que se haga una modificaci贸n a esta rama, Heroku va actualizar autom谩ticamente la aplicaci贸n.
Lo utlimo que deberiamos hacer es clic en el bot贸n Deploy Branch. Esto solo se hace una sola vez, luego se har谩 de forma autom谩tica.
Podemos verificar desde GitHub si el depliegue se hizo con exito.
https://github.com/flippiJS/slim-php-mysql-heroku/deployments
Desde el bot贸n View deployment accedemos a la URL de la app desplegada.
https://slim-php-mysql-heroku.herokuapp.com/
Para esto vamos a crear una cuenta en RemoteMysql -> https://remotemysql.com/login.php que nos permite acceder gratuitamente a un servidor MySQL en la nube.
En la parte de Create Account completamos los datos y creamos la cuenta:
Validamos la cuenta desde el link enviado al correo.
Iniciamos sesi贸n, vamos a DATABASES y luego CREATE NEW DATABASE
Una vez creada, nos van a figurar los datos de conexion a la base de datos, es MUY IMPORTANTE copiar esa informacion porque solo aparecer谩 una vez.
Copiamos estos datos y nos vamos al dashboard del proyecto en Heroku, en la pesta帽a Settings, la opci贸n Config Vars.
Agregamos los siguientes datos Clave -> Valor:
MYSQL_HOST=remotemysql.com (campo "Server" de los datos que guardamos al crear la base en remotemysql.com)
MYSQL_PORT=3306 (campo "Port" de los datos que guardamos al crear la base en remotemysql.com)
MYSQL_USER=elcNx8VTCx (campo "Username" de los datos que guardamos al crear la base en remotemysql.com)
MYSQL_PASS=1234 (campo "Password" de los datos que guardamos al crear la base en remotemysql.com)
MYSQL_DB=elcNx8VTCx (campo "Database Name" de los datos que guardamos al crear la base en remotemysql.com)
Desde las opciones de la base creada, accedemos a phpMyAdmin
Iniciamos sesion con los datos de la base
Desde el panel de este sitio vamos a poder administrar las diferentes bases, crear y borrar tablas y hacer consultas SQL.
- Instalar PHP o XAMPP (https://www.php.net/downloads.php o https://www.apachefriends.org/es/download.html)
- Instalar Composer desde https://getcomposer.org/download/ o por medio de CLI:
php -r "copy('//getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('SHA384', 'composer-setup.php') === 'e115a8dc7871f15d853148a7fbac7da27d6c0030b848d9b3dc09e2a0388afed865e6a3d6b3c0fad45c48e2b5fc1196ae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
- Copiar proyecto dentro de la carpeta htdocs
C:\xampp\htdocs\
- Acceder por linea de comandos a la carpeta del proyecto y luego instalar Slim framework via Compose
cd C:\xampp\htdocs\<ruta-del-repo-clonado>
composer update
- En el archivo index.php agregar la siguiente linea debajo de
AppFactory::create();
// Set base path
$app->setBasePath('/app');
- Abrir desde http://localhost/app 贸 http://localhost:8080/app (depende del puerto configurado en el panel del XAMPP)
- Acceder por linea de comandos a la carpeta del proyecto y luego instalar Slim framework via Compose
cd C:\<ruta-del-repo-clonado>
composer update
php -S localhost:666 -t app
- Abrir desde http://localhost:666/
Crear dentro de la carpeta /app/
el archivo .env
tomando de referencia .env.example
Agregamos los siguientes datos Clave -> Valor:
MYSQL_HOST=remotemysql.com (campo "Server" de los datos que guardamos al crear la base en remotemysql.com)
MYSQL_PORT=3306 (campo "Port" de los datos que guardamos al crear la base en remotemysql.com)
MYSQL_USER=elcNx8VTCx (campo "Username" de los datos que guardamos al crear la base en remotemysql.com)
MYSQL_PASS=1234 (campo "Password" de los datos que guardamos al crear la base en remotemysql.com)
MYSQL_DB=elcNx8VTCx (campo "Database Name" de los datos que guardamos al crear la base en remotemysql.com)
Cualquier duda o consulta por el canal de slack