REPLIT
https://replit.com es una solución que te permite desplegar servidores de diferentes tecnologías incluidas PHP. Para este ejercicio accede a replit y da de alta una cuenta de forma gratuita y crear un Servdor Web PHP
Una vez lo tengas creado tu replit, tendrás un proyecto limpio y a través de la consola (Shell, esquina superior derecha) ejecutaremos los siguientes comandos:
Instalación del SDK de google [opcional]
El framework backend-core-php8 está diseñado para poder interactuar con plataforma GOOGLE GCP y sacar el máximo partido para Datastore, BigQuery, Datastorage, SQL etc..
Para poder sacar el máximo provecho debemos instalar el SDK para linux tomando como punto de partida la página oficial de GCP: https://cloud.google.com/sdk/docs/install#linux
# Ir a la raiz del replit /home/runner
cd [enter]
# Descargar la última versión del SDK ( verificar el número más reciente. Versión en 2024-01-14)
curl -O https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-cli-459.0.0-linux-x86_64.tar.gz
# descomprimir el SDK, lo que creará un directorio /home/runner/google-cloud-sdk
tar xzf google-cloud-cli-459.0.0-linux-x86_64.tar.gz
# borrar el fichero tar.gz para liberar espacio
rm google-cloud-cli-459.0.0-linux-x86_64.tar.gz
# Autenticar el servidor con tu usuario google
./google-cloud-sdk/bin/gcloud auth application-default login --no-launch-browser
# te dará una URL que tendrás que pegar en tu navegador para autorizar la creación de un token que usaremos en el servidor
Enter authorization code: <pegar el código que te aparezca en tu navegador>
Esto te ha creado un fichero en el servidor [.config/gcloud/application_default_credentials.json] con tus credenciales. El contenido del fichero debemos meterlo en una variable dentro de los secretos que te permite crear replit en si IDE bajo el nombre de CF_GOOGLE_APPLICATION_CREDENTIALS.
# mostrar el contendo de las credenciales para copiar.
cat .config/gcloud/application_default_credentials.json
Listo. Ya tenemos el servidor REPLIT pudiendo acceder a recursos de Google con las credenciales instaladas.
Instalación del phpDocumentor para generar documentación [opcional]
Instalemos phpDocumentor si queremos poder generar documentación de nuestros desarrollos. Replit tiene incluido en el $PATH la ruta </home/runner/.local/bin> por lo que instalaremos ahí el script de phpDocumentor.
mkdir .local
mkdir .local/bin
wget https://github.com/phpDocumentor/phpDocumentor/releases/download/v3.4.3/phpDocumentor.phar
chmod +x phpDocumentor.phar
mv phpDocumentor.phar ./local/bin/phpdoc --visibility=public
Con esto ya tenemos el scriipt `phpdoc` listo para generar documentación.
phpdoc --visibility=public
Instalación del FRAMEWORK backend-core-php8
Comenzaremos con la instalación del framework a través de composer
# Volver a la carpeta <document-root> del sevidor
cd <carpeta-document-root>
composer require cloudframework-io/backend-core-php8
Elegiremos php82 e instalará las librerías necesarias incluidas en backend-core-php8.
A continuación crearemos la estructura básica de ficheros de configuración y estructura de directorios para poder empezar a desarrollar nuestro proyecto. Para ello ejecutaremos:
php vendor/cloudframework-io/backend-core-php8/install.php replit
Esto te crea una estructura de ficheros y carpetas, entre los ficheros te ha creado un API en la ruta <document-root>/api/training/hello.php
---------
Installing CloudFramework PHP 8.1 for replit
---------
- mkdir ./local_data/cache
- Copying /api examples
- Copying /scripts examples
- Copying composer.json
- Copying .gitignore
- Creating index.php for replit
Y ya estamos listos para lazar el servidor y acceder a nuestra a API hello.
Lanzar un servidor en replit para que atienda las peticiones
En la zona superior derecha dispones de un botón de [Deploy] que te permite lanzar un servidor:
Esto lanzará un servidor en https://your-replit-domain.replit.app donde podrás dar acceso a tus apis. Prueba accediendo a tu API https://your-replit-domain.replit.app/training/hello y deberías tener el mismo resultado que accediendo a https://backend-core-php8.replit.app/training/hello
{
"success": true,
"status": 200,
"code": "ok",
"time_zone": "UTC",
"data": "hello World",
"logs": "only restful.logs.allowed_ips. Current ip: 2.139.193.230, 34.117.33.233, 130.211.0.82,130.211.225.18"
}
CLONAR el proyecto replit de @cloudframework/backend-core-php8
https://replit.com/@cloudframework/backend-core-php8?embed=1