훅
Rudel은 샌드박스 수명 주기 이벤트 전후에 WordPress 액션과 필터를 실행합니다. 아래 카탈로그에는 Rudel::hooks()의 반환 결과인 액션 28개와 필터 5개가 나와 있습니다.
예제
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 상태로 유지됩니다.