본문으로 건너뛰기

훅

Rudel은 샌드박스 수명 주기 이벤트 전후에 WordPress 액션과 필터를 실행합니다. 아래 카탈로그에는 Rudel::hooks()의 반환 결과인 액션 28개와 필터 5개가 나와 있습니다.

예제

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

대부분의 before 및 failed 액션은 $context 배열을 받습니다. 샌드박스 수명 주기 훅에서는 이 배열에 environment가 들어갑니다(생성 시에는 name, options 및 environments_dir). failed 액션은 잡힌 Throwable도 $error로 받습니다.

샌드박스 수명 주기 액션

액션 인수
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

replace_state 액션 세 개는 EnvironmentManager::replace_environment_state()에 속하며, 어떤 Rudel 명령도 이를 호출하지 않습니다.

스냅샷 액션

액션 인수
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에는 environment, kind(snapshot), name 및 path가 포함됩니다. 각 항목은 snapshot 별칭으로도 실행됩니다(예: rudel_after_snapshot_create). 실패하면 $context 및 오류와 함께 rudel_failed_recovery_point_{create|restore|delete} 및 rudel_failed_snapshot_{create|restore|delete}가 실행됩니다. 이 별칭은 카탈로그에 포함되지 않습니다.

정리 액션

액션 인수
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에는 removed, skipped, errors 및 reasons가 포함됩니다.

Git 푸시 액션

액션 인수
rudel_before_environment_push $context
rudel_after_environment_push $sha, $context
rudel_environment_push_failed $context, $error

이 액션은 Rudel::push()에 대해 실행됩니다. $context에는 environment, remote, message 및 subdir가 포함됩니다. wp rudel push 명령은 직접 푸시하므로 이 액션을 실행하지 않습니다.

자동화 액션

액션 인수
rudel_before_automation_cleanup $config
rudel_after_automation_cleanup $result, $config
rudel_after_automation_expiring_environments $result, $config

$config은 전체 rudel_config 배열입니다. 자동화를 참고하세요.

필터

필터 인수
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은 Rudel이 처리하기 전에 모든 생성 호출의 옵션을 변경할 수 있습니다. rudel_environment_clone_source는 호스트에서 생성된 샌드박스에 저장된 복제 메타데이터를 필터링합니다. rudel_environment_db_dropin_contents는 멀티사이트 하위 사이트 환경에서 사용하는 db.php 드롭인에만 적용됩니다. 현재 버전에서 생성되는 유일한 종류인 오버레이 샌드박스는 드롭인을 만들지 않습니다.

필터는 정책을 조정하기 위한 것이며 Rudel의 저장소 모델을 대체하기 위한 것이 아닙니다. 런타임 ID, 테이블 접두사 및 작업 트리 메타데이터는 DB에 저장되는 Rudel 상태로 유지됩니다.