Secciones

Class Phalcon\Cli\Console

Código fuente en GitHub

Namespace Phalcon\Cli   Uses Phalcon\Application\AbstractApplication, Phalcon\Cli\Router\Route, Phalcon\Cli\Console\Exception, Phalcon\Di\DiInterface, Phalcon\Events\ManagerInterface   Extends AbstractApplication

Este componente permite crear aplicaciones CLI usando Phalcon

Propiedades

/**
 * @var array
 */
protected arguments;

/**
 * @var array
 */
protected options;

Métodos

public function handle( array $arguments = null );

Gestiona todas las tareas de línea de comandos

public function setArgument( array $arguments = null, bool $str = bool, bool $shift = bool ): Console;

Establece un argumento específico

Class Phalcon\Cli\Console\Exception

Código fuente en GitHub

Namespace Phalcon\Cli\Console   Extends \Phalcon\Application\Exception

Las excepciones lanzadas en Phalcon\Cli\Console usarán esta clase

Class Phalcon\Cli\Dispatcher

Código fuente en GitHub

Namespace Phalcon\Cli   Uses Phalcon\Cli\Dispatcher\Exception, Phalcon\Dispatcher\AbstractDispatcher, Phalcon\Events\ManagerInterface, Phalcon\Filter\FilterInterface   Extends CliDispatcher   Implements DispatcherInterface

El despachado es el proceso de tomar los argumentos de la línea de comando, extraer el nombre del módulo, nombre de la tarea, nombre de la acción, y opcionalmente los parámetros contenidos en ellos, y entonces instanciar una tarea y llamar una acción sobre ella.

use Phalcon\Di;
use Phalcon\Cli\Dispatcher;

$di = new Di();

$dispatcher = new Dispatcher();

$dispatcher->setDi($di);

$dispatcher->setTaskName("posts");
$dispatcher->setActionName("index");
$dispatcher->setParams([]);

$handle = $dispatcher->dispatch();

Propiedades

/**
 * @var string
 */
protected defaultHandler = main;

/**
 * @var string
 */
protected defaultAction = main;

/**
 * @var string
 */
protected handlerSuffix = Task;

/**
 * @var array
 */
protected options;

Métodos

public function callActionMethod( mixed $handler, string $actionMethod, array $params = [] ): mixed;

Llama al método acción.

public function getActiveTask(): TaskInterface;

Devuelve la tarea activa en el despachador

public function getLastTask(): TaskInterface;

Devuelve el último controlador despachado

public function getOption( mixed $option, mixed $filters = null, mixed $defaultValue = null ): mixed;

Obtiene una opción por su nombre o índice numérico

public function getOptions(): array;

Obtiene las opciones despachadas

public function getTaskName(): string;

Obtiene el nombre de la última tarea despachada

public function getTaskSuffix(): string;

Obtiene el sufijo de la tarea predeterminada

public function hasOption( mixed $option ): bool;

Comprueba si existe una opción

public function setDefaultTask( string $taskName ): void;

Establece el nombre de la tarea predeterminada

public function setOptions( array $options ): void;

Establece las opciones a despachar

public function setTaskName( string $taskName ): void;

Establece el nombre de la tarea a despachar

public function setTaskSuffix( string $taskSuffix ): void;

Establece el sufijo de la tarea por defecto

protected function handleException( \Exception $exception );

Gestiona una excepción de usuario

protected function throwDispatchException( string $message, int $exceptionCode = int );

Lanza una excepción interna

Class Phalcon\Cli\Dispatcher\Exception

Código fuente en GitHub

Namespace Phalcon\Cli\Dispatcher   Extends \Phalcon\Dispatcher\Exception

Las excepciones lanzadas en Phalcon\Cli\Dispatcher usarán esta clase

Interface Phalcon\Cli\DispatcherInterface

Código fuente en GitHub

Namespace Phalcon\Cli   Uses Phalcon\Dispatcher\DispatcherInterface   Extends DispatcherInterfaceBase

Interfaz para Phalcon\Cli\Dispatcher

Métodos

public function getActiveTask(): TaskInterface;

Devuelve la tarea activa en el despachador

public function getLastTask(): TaskInterface;

Devuelve el último controlador despachado

public function getOptions(): array;

Obtiene las opciones despachadas

public function getTaskName(): string;

Obtiene el nombre de la última tarea despachada

public function getTaskSuffix(): string;

Obtiene el sufijo de la tarea por defecto

public function setDefaultTask( string $taskName ): void;

Establece el nombre de la tarea predeterminada

public function setOptions( array $options ): void;

Establece las opciones a despachar

public function setTaskName( string $taskName ): void;

Establece el nombre de la tarea a despachar

public function setTaskSuffix( string $taskSuffix ): void;

Establece el sufijo de la tarea por defecto

Class Phalcon\Cli\Router

Código fuente en GitHub

Namespace Phalcon\Cli   Uses Phalcon\Di\DiInterface, Phalcon\Di\AbstractInjectionAware, Phalcon\Cli\Router\Route, Phalcon\Cli\Router\Exception, Phalcon\Cli\Router\RouteInterface   Extends AbstractInjectionAware

Phalcon\Cli\Router es el enrutador de framework estándar. Enrutamiento es el proceso de tomar los argumentos de la línea de comandos y descomponerlos en parámetros para determinar qué módulo, tarea, y acción de esa tarea debería recibir la petición.

$router = new \Phalcon\Cli\Router();

$router->handle(
    [
        "module" => "main",
        "task"   => "videos",
        "action" => "process",
    ]
);

echo $router->getTaskName();

Propiedades

//
protected action;

//
protected defaultAction;

//
protected defaultModule;

/**
 * @var array
 */
protected defaultParams;

//
protected defaultTask;

//
protected matchedRoute;

//
protected matches;

//
protected module;

/**
 * @var array
 */
protected params;

//
protected routes;

//
protected task;

//
protected wasMatched = false;

Métodos

public function __construct( bool $defaultRoutes = bool );

Constructor Phalcon\Cli\Router

public function add( string $pattern, mixed $paths = null ): RouteInterface;

Añade una ruta al enrutador

$router->add("/about", "About::main");
public function getActionName(): string;

Devuelve el nombre de la acción procesada

public function getMatchedRoute(): RouteInterface;

Devuelve la ruta que coincide con el URI gestionado

public function getMatches(): array;

Devuelve las sub expresiones en la expresión regular combinada

public function getModuleName(): string;

Devuelve el nombre del módulo procesado

public function getParams(): array;

Devuelve los parámetros extra procesados

public function getRouteById( mixed $id ): RouteInterface | bool;

Devuelve un objeto de ruta por su identidad

public function getRouteByName( string $name ): RouteInterface | bool;

Devuelve un objeto de ruta por su nombre

public function getRoutes(): Route[];

Devuelve todas las rutas definidas en el enrutador

public function getTaskName(): string;

Devuelve el nombre de la tarea procesada

public function handle( mixed $arguments = null );

Gestiona la información de enrutamiento recibida desde los argumentos de la línea de comandos

public function setDefaultAction( string $actionName );

Establece el nombre de acción predeterminado

public function setDefaultModule( string $moduleName );

Establece el nombre del módulo predeterminado

public function setDefaultTask( string $taskName ): void;

Establece el nombre predeterminado del controlador

public function setDefaults( array $defaults ): Router;

Establece un vector de rutas por defecto. Si a una ruta le falta el camino el enrutador usará el definido aquí. No se debe usar este método para establecer una ruta 404

$router->setDefaults(
    [
        "module" => "common",
        "action" => "index",
    ]
);
public function wasMatched(): bool;

Comprueba si el enrutador coincide con alguna de las rutas definidas

Class Phalcon\Cli\Router\Exception

Código fuente en GitHub

Namespace Phalcon\Cli\Router   Extends \Phalcon\Exception

Las excepciones lanzadas en Phalcon\Cli\Router usarán esta clase

Class Phalcon\Cli\Router\Route

Código fuente en GitHub

Namespace Phalcon\Cli\Router   Implements RouteInterface

Esta clase representa cada ruta agregada al enrutador

Constantes

const DEFAULT_DELIMITER =  ;

Propiedades

//
protected beforeMatch;

//
protected compiledPattern;

//
protected converters;

//
protected delimiter;

//
protected static delimiterPath;

//
protected description;

//
protected id;

//
protected name;

//
protected paths;

//
protected pattern;

//
protected static uniqueId = 0;

Métodos

public function __construct( string $pattern, mixed $paths = null );
public function beforeMatch( mixed $callback ): RouteInterface;

Establece una llamada de retorno que se llama si la ruta coincide. El desarrollador puede implementar cualquier condición arbitraria aquí. Si la función de retorno devuelve false la ruta será tratada como no coincidente

public function compilePattern( string $pattern ): string;

Sustituye los marcadores de posición del patrón devolviendo una expresión regular PCRE válida

public function convert( string $name, mixed $converter ): RouteInterface;

Añade un convertidor para ejecutar una transformación adicional para un parámetro determinado

public static function delimiter( string $delimiter = null ): void;

Establece el delimitador de enrutamiento

public function extractNamedParams( string $pattern ): array | bool;

Extrae parámetros de una cadena

public function getBeforeMatch(): mixed;

Devuelve la función de retorno ‘before match’ si la hay

public function getCompiledPattern(): string;

Devuelve el patrón compilado de la ruta

public function getConverters(): array;

Devuelve el convertidor del router

public static function getDelimiter(): string;

Obtiene el delimitador de enrutamiento

public function getDescription(): string;

Devuelve la descripción de la ruta

public function getName(): string;

Devuelve el nombre de la ruta

public function getPaths(): array;

Devuelve las rutas

public function getPattern(): string;

Devuelve el patrón de la ruta

public function getReversedPaths(): array;

Devuelve las rutas usando posiciones como claves y nombres como valores

public function getRouteId(): string;

Devuelve la identidad de la ruta

public function reConfigure( string $pattern, mixed $paths = null ): void;

Reconfigura la ruta agregando un nuevo patrón y un conjunto de rutas

public static function reset(): void;

Restablece el generador de identificador de ruta interno

public function setDescription( string $description ): RouteInterface;

Establece la descripción de la ruta

public function setName( string $name ): RouteInterface;

Establece el nombre de la ruta

$router->add(
    "/about",
    [
        "controller" => "about",
    ]
)->setName("about");

Interface Phalcon\Cli\Router\RouteInterface

Código fuente en GitHub

Namespace Phalcon\Cli\Router

Interfaz para Phalcon\Cli\Router\Route

Métodos

public function compilePattern( string $pattern ): string;

Sustituye los marcadores de posición del patrón devolviendo una expresión regular PCRE válida

public static function delimiter( string $delimiter = null );

Establece el delimitador de enrutamiento

public function getCompiledPattern(): string;

Devuelve el patrón de la ruta

public static function getDelimiter(): string;

Obtiene el delimitador de enrutamiento

public function getDescription(): string;

Devuelve la descripción de la ruta

public function getName(): string;

Devuelve el nombre de la ruta

public function getPaths(): array;

Devuelve las rutas

public function getPattern(): string;

Devuelve el patrón de la ruta

public function getReversedPaths(): array;

Devuelve las rutas usando posiciones como claves y nombres como valores

public function getRouteId(): string;

Devuelve la identidad de la ruta

public function reConfigure( string $pattern, mixed $paths = null ): void;

Reconfigura la ruta agregando un nuevo patrón y un conjunto de rutas

public static function reset(): void;

Restablece el generador de identificador de ruta interno

public function setDescription( string $description ): RouteInterface;

Establece la descripción de la ruta

public function setName( string $name ): RouteInterface;

Establece el nombre de la ruta

Interface Phalcon\Cli\RouterInterface

Código fuente en GitHub

Namespace Phalcon\Cli   Uses Phalcon\Cli\Router\RouteInterface

Interfaz para Phalcon\Cli\Router

Métodos

public function add( string $pattern, mixed $paths = null ): RouteInterface;

Añade una ruta al enrutador en cualquier método HTTP

public function getActionName(): string;

Devuelve el nombre de la acción procesada

public function getMatchedRoute(): RouteInterface;

Devuelve la ruta que coincide con el URI gestionado

public function getMatches(): array;

Devuelve las subexpresiones coincidentes en la expresión regular

public function getModuleName(): string;

Devuelve el nombre del módulo procesado

public function getParams(): array;

Devuelve los parámetros extra procesados

public function getRouteById( mixed $id ): RouteInterface;

Devuelve un objeto de ruta por su identidad

public function getRouteByName( string $name ): RouteInterface;

Devuelve un objeto de ruta por su nombre

public function getRoutes(): RouteInterface[];

Devuelve todas las rutas definidas en el enrutador

public function getTaskName(): string;

Devuelve el nombre de la tarea procesada

public function handle( mixed $arguments = null );

Gestiona la información de enrutamiento recibida del motor de reescritura

public function setDefaultAction( string $actionName ): void;

Establece el nombre de acción predeterminado

public function setDefaultModule( string $moduleName ): void;

Establece el nombre del módulo predeterminado

public function setDefaultTask( string $taskName ): void;

Establece el nombre de la tarea predeterminada

public function setDefaults( array $defaults ): void;

Establece un vector de rutas por defecto

public function wasMatched(): bool;

Comprueba si el enrutador coincide con alguna de las rutas definidas

Class Phalcon\Cli\Task

Código fuente en GitHub

Namespace Phalcon\Cli   Uses Phalcon\Di\Injectable, Phalcon\Events\EventsAwareInterface, Phalcon\Events\ManagerInterface   Extends Injectable   Implements TaskInterface, EventsAwareInterface

Cada tarea de la línea de comandos debería extender esta clase que encapsula toda la funcionalidad de la tarea

Una tarea se puede usar para ejecutar “tareas” como migraciones, tareas programadas, tests unitarios, o cualquier otra cosa que se quiera. La clase Tarea debería tener al menos un método “mainAction”.

class HelloTask extends \Phalcon\Cli\Task
{
    // This action will be executed by default
    public function mainAction()
    {

    }

    public function findAction()
    {

    }
}

Propiedades

//
protected eventsManager;

Métodos

final public function __construct();

Constructor Phalcon\Cli\Task

public function getEventsManager(): ManagerInterface | null;

Devuelve el gestor de eventos interno

public function setEventsManager( ManagerInterface $eventsManager ): void;

Establece el administrador de eventos

Interface Phalcon\Cli\TaskInterface

Código fuente en GitHub

Namespace Phalcon\Cli

Interfaz para los manejadores de tareas