Saltar al contenido

Hooks

Rudel ejecuta acciones y filtros WordPress en torno a los eventos del ciclo de vida de los entornos aislados. El catálogo siguiente es lo que devuelve Rudel::hooks(): 28 acciones y 5 filtros.

Ejemplo

PHP
add_action(
    'rudel_after_environment_create',
    function ( \Rudel\Environment $environment, array $context ): void {
        error_log( 'Created Rudel environment ' . $environment->id );
    },
    10,
    2
);

La mayoría de las acciones de before y failed reciben una matriz $context. En los hooks del ciclo de vida de los entornos aislados contiene el environment (o el name, options y environments_dir al crear); las acciones failed también reciben la Throwable capturada como $error.

Acciones del ciclo de vida del entorno aislado

Acción Argumentos
rudel_before_environment_create $context
rudel_after_environment_create $environment, $context
rudel_environment_create_failed $context, $error
rudel_before_environment_update $context
rudel_after_environment_update $environment, $context
rudel_environment_update_failed $context, $error
rudel_before_environment_destroy $context
rudel_after_environment_destroy $context
rudel_environment_destroy_failed $context, $error
rudel_before_environment_replace_state $context
rudel_after_environment_replace_state $result, $context
rudel_environment_replace_state_failed $context, $error

Las tres acciones replace_state pertenecen a EnvironmentManager::replace_environment_state(), que no se invoca mediante ningún comando Rudel.

Acciones de instantánea

Acción Argumentos
rudel_before_recovery_point_create $context
rudel_after_recovery_point_create $context, $meta
rudel_before_recovery_point_restore $context
rudel_after_recovery_point_restore $context
rudel_before_recovery_point_delete $context
rudel_after_recovery_point_delete $context

$context contiene environment, kind (snapshot), name y path. Cada una también se ejecuta con un alias snapshot, por ejemplo rudel_after_snapshot_create, y los fallos ejecutan rudel_failed_recovery_point_{create|restore|delete} y rudel_failed_snapshot_{create|restore|delete} con $context y el error. Esos alias no aparecen en el catálogo.

Acciones de limpieza

Acción Argumentos
rudel_before_environment_cleanup $options
rudel_after_environment_cleanup $result, $options
rudel_before_environment_cleanup_merged $options
rudel_after_environment_cleanup_merged $result, $options

$result contiene removed, skipped, errors y reasons.

Acciones de envío Git

Acción Argumentos
rudel_before_environment_push $context
rudel_after_environment_push $sha, $context
rudel_environment_push_failed $context, $error

Se ejecutan para Rudel::push(). $context contiene environment, remote, message y subdir. El comando wp rudel push envía directamente y no las ejecuta.

Acciones de automatización

Acción Argumentos
rudel_before_automation_cleanup $config
rudel_after_automation_cleanup $result, $config
rudel_after_automation_expiring_environments $result, $config

$config es la matriz completa de rudel_config. Consulte Automatización.

Filtros

Filtro Argumentos
rudel_environment_create_options $options, $name, $manager
rudel_environment_clone_source $clone_source, $host_url, $db_cloned, $themes_cloned, $plugins_cloned, $uploads_cloned, $extra
rudel_environment_cleanup_options $options, $repository
rudel_environment_cleanup_merged_options $options, $repository
rudel_environment_db_dropin_contents $contents, $context

rudel_environment_create_options puede cambiar las opciones de cualquier llamada de creación antes de que Rudel actúe sobre ellas. rudel_environment_clone_source filtra los metadatos de clonación guardados en un entorno aislado creado a partir del host. rudel_environment_db_dropin_contents solo se aplica al complemento db.php que usan los entornos multisitio con subsitios; los entornos aislados con superposición, el único tipo que crean las versiones actuales, nunca lo generan.

Los filtros están pensados para ajustar la política, no para sustituir el modelo de almacenamiento de Rudel. La identidad en tiempo de ejecución, los prefijos de tablas y los metadatos de áreas de trabajo siguen siendo estados Rudel respaldados por la base de datos.