Imprimir

Console

El siguiente es el manual para administradores de la aplicación Console.

Tabla de contenidos

Introducción

La aplicación contiene soporte para la ejecución del sitio a través de la consola. Adicionalmente, incluye soporte para ejecutar tareas programadas (cron jobs).

 

Comandos

Se incluyen comandos básicos para una consola, a saber:

list lista todos los comandos disponibles (o informados) de todas las aplicaciones.

cron ejecuta el manejador de tareas programadas.

 

Fragmentos (Snippets)

Contiene una librería del tipo fragmento (snippet), que facilita producir salidas. Por ejemplo, muestra un conjunto de datos en una tabla, a partir de un arreglo.

 

Programador de tareas

Básicamente, es una librería que permite decidir si una tarea debe o no ser ejecutada, dependiendo del momento en que es llamada.

 

Cómo empezar

El punto de entrada para ejecutar el framework a través de una consola, es el archivo console. El archivo puede ser ejecutado en cualquier lugar del sitio, por lo general se utiliza la carpeta bin/ ubicada fuera de la carpeta pública. 

Lo único que debe hacer es asegurarse de que se incluya correctamente el archivo bootstrap.php:

include '../public/bootstrap.php';

En la consola, se debe apuntar a la carpeta bin/ y ejecutar:

php console

 

Importante! la directiva register_argc_argv de php debe estar habilitada.

 

Cómo acceder a las aplicaciones

El modo en que se accede a las aplicaciones es similar al de la web. Es decir, se debe pasar la ruta component/task, sólo que es posible reemplazar la barra / por los dos puntos :, o incluso, por un espacio ' '.

Note que no se pasa el punto de acceso (access_point), ya que el framework entiende que el punto de acceso es el archivo que se ejecuta, por lo tanto, si reemplazamos el nombre del archivo bin/console, por bin/terminal, estamos diciendo que el punto de acceso será el de terminal.

La aplicación por defecto será console, por lo tanto, no es necesario incluirla en la ruta. Los siguientes ejemplos tienen la misma salida:

php console console:list
php console list

 

Comandos

La aplicación incluye algunos comandos básicos para una consola.

 

list

Crea una lista con los comandos disponibles (o informados) de todas las aplicaciones.

Para agregar comandos a la lista, se debe crear un plugin de nombre console-help, y, en el gancho load, se debe incluir un contenido similar a:

return function(ConsoleHelpCollector &$collector)
{
	$collector->title('Title')
		->command('command_1', 'A summary text.')
		->command('command_2', 'A summary text.');
}

 

Fragmentos (Snippets)

Por el momento, la aplicación contiene sólo el fragmento console, que facilita generar salidas.

 

Console

Facilita generar una salida.

 

Ejemplo inicial

$console = Snippets::get('console');
$console->line('Hello word!');
$console->display();

Programador de tareas

El manejador de tareas programadas permite concentrar las tareas de cron en un único punto, y desde allí, administrar y ejecutar las tareas programadas.

Las ventajas son:

 

Ejecutar el programador

Para ejecutar las tareas programadas en nuestro servidor, depende en gran medida del servidor en sí. Sin perjuicio de ello, el código será similar a:

* * * * * /path/to/bin/php /path/to/console cron >/dev/null 2>&1

en donde los argumentos corresponden a:

Expresión Cron

Una expresión de cron que indique la frecuencia de ejecución. Para los fines prácticos, mantenga la expresión * * * * *, es decir, cada un minuto.

Ejecutable

La ruta al ejecutable de php que procesará el pedido.

Archivo

La ruta al archivo a ejecutar, en nuestro caso: console.

Controlador

La tarea a ejecutar dentro de nuestra aplicación, para nosotros: cron.

Salida

En nuestro ejemplo, silenciamos la salida.

Importante! la directiva register_argc_argv de php debe estar habilitada.

En algunos servidores compartidos, la directiva register_argc_argv no está habilitada y no hay modo de hacerlo desde php.ini. En estos casos, es posible ejecura la opción -d en la línea de comando.

* * * * * /path/to/bin/php -d register_argc_argv=On /path/to/console cron >/dev/null 2>&1

 

Definir una tarea

Las tareas se definen como un plugin de nombre console-cron. En un archivo de gancho exec se debe escribir un código similar a:

return function(ConsoleCron &$cron)
{
	$cron->on('* * * * *')?->call(function() {
		// the task
	});
}

 

ConsoleCron::on

Verifica que una expresión Cron corresponda con la hora actual. Devuelve el objeto para el caso de que corresponda o, de lo contrario, retorna null.

public ConsoleCron::on ( string $expression ): ConsoleCron|null
expression

Una expresión Cron válida.

 

ConsoleCron::call

Ejecuta una llamada de retorno.

public ConsoleCron::call ( callable $callback )
callback

La función de retorno que ejecuta la tarea programada.

 

 

ConsoleCron::validate

Valida una expresión Cron.

public ConsoleCron::validate ( string $expression ): bool
expression

La expresión Cron a validar.

 

Configuraciones

La ruta para acceder a las configuraciones de Cron es Administración > Configuraciones > Herramientas > Consola > Cron.

 

Plugins

Seleccione los plugins de tareas que desea habilitar.