Traducciones English

Tomando contacto con StratusPHP.

En la presente entrada mostraremos a modo de tutorial los pasos mínimos necesarios para realizar la aplicación demostrativa del primer video que publicamos sobre StratusPHP. Recomendamos ver ese primer video a quienes no lo hayan hecho aún.

Como hemos comentado anteriormente, este es un proyecto que actualmente se encuentra en pleno desarrollo y a medida que vayamos avanzando en su desarrollo iremos publicando entradas sobre las nuevas características, cambios, novedades, etc.

La presente publicación servirá para que los usuarios sean capaces de crear aplicaciones de pruebas con StratusPHP y de esta forma, podrán probar todas las nuevas características que iremos publicando próximamente.

Algo muy importante que tenemos que aclarar, es que StratusPHP contará con diferentes modos de trabajo. Esto se podría traducir a que podrá contar con muchas opciones de configuración y en dependencia de las necesidades de las aplicaciones, se deberán especificar las pertinentes. Una de las características de StratusPHP es que será capaz de funcionar tanto por HTTP como por WebSockets, y por tanto, la alternativa elegida dependerá en gran medida del modo de trabajo. Dicho esto queremos aclarar que en el estado del desarrollo en el que nos encontramos actualmente, solo estamos centrados en el funcionamiento por HTTP.

No se preocupe si le surgen algunas dudas por todo lo que hemos comentado anteriormente. Estamos totalmente conscientes de que tenemos muchísimas cosas que explicar y es algo que haremos en su debido momento, pero con la presente publicación solo pretendemos brindar un enfoque práctico.

1. Instalando StratusPHP.

La instalación de StratusPHP se realiza a través de Composer de la siguiente manera:

$ composer require thenlabs/stratus-php dev-master

Tenga en cuenta que StratusPHP necesita PHP 7.3 o superior.

2. Creando la clase de la aplicación.

Una vez que la instalación ha finalizado pasamos a crear la clase de la aplicación la cual deberá devolver el código HTML de la página. Para ello creamos el siguiente archivo:

<?php
// src/App.php

namespace ThenLabs\StratusPHP\Demo;

use ThenLabs\StratusPHP\AbstractApp;

class App extends AbstractApp
{
    public function getView(): string
    {
        return <<<HTML
            <!DOCTYPE html>
            <html lang="en">
            <head>
                <meta charset="UTF-8">
                <title>Document</title>
            </head>
            <body>
                <input type="" name="">
                <label></label>
                <button>Saludar</button>
            </body>
            </html>
        HTML;
    }
}

Usted puede notar que en nuestro caso, estamos usando el espacio de nombres ThenLabs\StratusPHP\Demo. Como usted podrá suponer la estructura de la aplicación es algo que dependerá de las necesidades de la misma por lo que no es algo absoluto.

En nuestro caso debemos crear el espacio de nombres. Para ello debemos añadir lo siguiente al archivo composer.json:

{
    // ...
    "autoload": {
        "psr-4": {
            "ThenLabs\\StratusPHP\\Demo\\": "src/"
        }
    }
}

Una vez realizado lo anterior debemos ejecutar el comando:

$ composer dump-autoload

Como usted pudo notar, nuestra clase App hereda de la clase ThenLabs\StratusPHP\AbstractApp y contiene el método getView(): string que devuelve el código HTML de nuestra página.

3. Introducción a los controladores.

Como usted conoce, las aplicaciones web se componen de controladores para su funcionamiento.

En el caso de las aplicaciones hechas con StratusPHP necesitarán dos controladores para funcionar. Uno se encargará de devolver el HTML de la página, mientras que el otro de procesar las llamadas asíncronas.

Es importante mencionar que la forma de creación de esos controladores queda totalmente fuera del alcance de StratusPHP. De esta forma, se garantiza que sea totalmente compatible con otros frameworks de propósito general como Symfony, Laravel, etc. Sin dudas, esta es una de las mejores características de StratusPHP.

4. Creando el controlador de carga.

Para nuestro controlador de carga crearemos el siguiente archivo:

<?php
// public/index.php

require_once __DIR__.'/../vendor/autoload.php';

use ThenLabs\StratusPHP\Demo\App;
use function Opis\Closure\serialize as s;

$app = new App('/controller.php');

$input = $app->querySelector('input');
$label = $app->querySelector('label');
$button = $app->querySelector('button');

$button->onClick(function () use ($input, $label) {
    $label->innerHTML = "Hola {$input->value}";
});

session_start();
$_SESSION['app'] = s($app);

echo $app;

Usted puede ver que en dicho archivo definimos el comportamiento de nuestra aplicación.

5. Creando el controlador de procesamiento.

Para el caso de nuestro del controlador de procesamiento lo hacemos de la siguiente manera:

<?php
// public/controller.php

require_once __DIR__.'/../vendor/autoload.php';

use ThenLabs\StratusPHP\StratusRequest;
use function Opis\Closure\{serialize as s, unserialize as u};

session_start();

$app = u($_SESSION['app']);
$request = StratusRequest::createFromJson($_REQUEST['stratus_request']);

$result = $app->run($request);

if ($result->isSuccessful()) {
    $_SESSION['app'] = s($app);
}

die();

6. Probando la aplicación.

Para ejecutar el demo ejecute:

$ php -S localhost:8000 -t public

Una vez que visitemos la URL donde se habrá servido nuestra aplicación podemos comprobar que funciona de la manera esperada.

7. Conclusiones.

Una vez llegado a este punto, los usuarios serán capaces de tomar contacto con StratusPHP. Las nuevas características que vayamos mostrando en lo adelante, podrán probarlas en un proyecto similar.

Queremos destacar la capacidad de StratusPHP de modificar los elementos del DOM de la página sin tener que recargar la misma. Usted podrá comprobar que se podría escribir y/o leer sobre cualquier dato. No obstante, queremos recordar que StratusPHP se encuentra en desarrollo y nos faltan muchas cosas por probar.

En el archivo demo1.zip se podrá descargar una implementación funcional de lo que hemos realizado.

Les agradeceríamos que compartieran esta publicación para que muchas otras personas conozcan sobre StratusPHP.

Fecha de publicación: 2020-06-21

Si desea enterarse por correo electrónico sobre nuestras próximas publicaciones y novedades en general, suscríbase a nuestro boletín.

Redes Sociales

Suscríbase también a nuestras redes sociales.
También por esos canales compartiremos nuestras novedades.

Contactar

Para contactarnos puede escribirnos a:
thenlabs@gmail.com