Ajax
1 month ago
Dto
2 months ago
Interfaces
2 months ago
Jobs
5 months ago
Service
2 months ago
Tasks
1 month ago
Traits
1 month ago
CloneOptions.php
5 months ago
FirstRun.php
4 months ago
Sites.php
2 months ago
StagingServiceProvider.php
5 months ago
StagingServiceProvider.php
95 lines
| 1 | <?php |
| 2 | |
| 3 | namespace WPStaging\Staging; |
| 4 | |
| 5 | use WPStaging\Core\WPStaging; |
| 6 | use WPStaging\Framework\Adapter\Database; |
| 7 | use WPStaging\Framework\Adapter\DatabaseInterface; |
| 8 | use WPStaging\Framework\DI\FeatureServiceProvider; |
| 9 | use WPStaging\Framework\Job\Dto\JobDataDto; |
| 10 | use WPStaging\Framework\ThirdParty\MalCare; |
| 11 | use WPStaging\Staging\Ajax\Create; |
| 12 | use WPStaging\Staging\Ajax\Create\PrepareCreate; |
| 13 | use WPStaging\Staging\Ajax\Delete; |
| 14 | use WPStaging\Staging\Ajax\Delete\PrepareDelete; |
| 15 | use WPStaging\Staging\Ajax\Listing; |
| 16 | use WPStaging\Staging\Ajax\Delete\DeleteConfirm; |
| 17 | use WPStaging\Staging\Ajax\Repair; |
| 18 | use WPStaging\Staging\Ajax\Reset; |
| 19 | use WPStaging\Staging\Ajax\Reset\PrepareReset; |
| 20 | use WPStaging\Staging\Ajax\Setup; |
| 21 | use WPStaging\Staging\Ajax\Update; |
| 22 | use WPStaging\Staging\Ajax\Update\PrepareUpdate; |
| 23 | use WPStaging\Staging\Dto\Job\StagingSiteDeleteDataDto; |
| 24 | use WPStaging\Staging\Dto\Job\StagingSiteJobsDataDto; |
| 25 | use WPStaging\Staging\Jobs\StagingSiteCreate; |
| 26 | use WPStaging\Staging\Jobs\StagingSiteDelete; |
| 27 | use WPStaging\Staging\Jobs\StagingSiteReset; |
| 28 | use WPStaging\Staging\Jobs\StagingSiteUpdate; |
| 29 | use WPStaging\Staging\Tasks\StagingSite\CleanupStagingTablesTask; |
| 30 | |
| 31 | class StagingServiceProvider extends FeatureServiceProvider |
| 32 | { |
| 33 | protected function registerClasses() |
| 34 | { |
| 35 | $this->container->when(StagingSiteDelete::class) |
| 36 | ->needs(JobDataDto::class) |
| 37 | ->give(StagingSiteDeleteDataDto::class); |
| 38 | |
| 39 | $this->container->when(StagingSiteCreate::class) |
| 40 | ->needs(JobDataDto::class) |
| 41 | ->give(StagingSiteJobsDataDto::class); |
| 42 | |
| 43 | $this->container->when(StagingSiteUpdate::class) |
| 44 | ->needs(JobDataDto::class) |
| 45 | ->give(StagingSiteJobsDataDto::class); |
| 46 | |
| 47 | $this->container->when(StagingSiteReset::class) |
| 48 | ->needs(JobDataDto::class) |
| 49 | ->give(StagingSiteJobsDataDto::class); |
| 50 | |
| 51 | $this->container->when(CleanupStagingTablesTask::class) |
| 52 | ->needs(DatabaseInterface::class) |
| 53 | ->give(Database::class); |
| 54 | } |
| 55 | |
| 56 | protected function addHooks() |
| 57 | { |
| 58 | $this->enqueueAjaxListeners(); |
| 59 | } |
| 60 | |
| 61 | protected function enqueueAjaxListeners() |
| 62 | { |
| 63 | add_action('wp_ajax_wpstg--staging-site--prepare-delete', $this->container->callback(PrepareDelete::class, 'ajaxPrepare')); // phpcs:ignore WPStaging.Security.AuthorizationChecked |
| 64 | add_action('wp_ajax_wpstg--staging-site--delete-confirmation', $this->container->callback(DeleteConfirm::class, 'ajaxConfirm')); // phpcs:ignore WPStaging.Security.AuthorizationChecked |
| 65 | add_action('wp_ajax_wpstg--staging-site--delete', $this->container->callback(Delete::class, 'ajaxDelete')); // phpcs:ignore WPStaging.Security.AuthorizationChecked |
| 66 | add_action('wp_ajax_wpstg--staging-site--listing', $this->container->callback(Listing::class, 'ajaxListing')); // phpcs:ignore WPStaging.Security.AuthorizationChecked |
| 67 | add_action('wp_ajax_wpstg--staging-site--fix-option', $this->container->callback(Repair::class, 'ajaxFixOption')); // phpcs:ignore WPStaging.Security.AuthorizationChecked |
| 68 | add_action('wp_ajax_wpstg--staging-site--report-option', $this->container->callback(Repair::class, 'ajaxReportOption')); // phpcs:ignore WPStaging.Security.AuthorizationChecked |
| 69 | add_action(StagingSiteCreate::ACTION_CLONING_COMPLETE, $this->container->callback(MalCare::class, 'maybeDisableMalCare')); |
| 70 | $this->enqueueStagingAjaxListeners(); |
| 71 | } |
| 72 | |
| 73 | protected function enqueueStagingAjaxListeners() |
| 74 | { |
| 75 | if (!defined('WPSTG_NEW_STAGING') || !WPSTG_NEW_STAGING) { |
| 76 | return; |
| 77 | } |
| 78 | |
| 79 | add_action('wp_ajax_wpstg--staging-site--setup', $this->container->callback(Setup::class, 'ajaxSetup')); // phpcs:ignore WPStaging.Security.AuthorizationChecked |
| 80 | |
| 81 | if (!WPStaging::isBasic()) { |
| 82 | return; |
| 83 | } |
| 84 | |
| 85 | add_action('wp_ajax_wpstg--staging-site--prepare-create', $this->container->callback(PrepareCreate::class, 'ajaxPrepare')); // phpcs:ignore WPStaging.Security.AuthorizationChecked |
| 86 | add_action('wp_ajax_wpstg--staging-site--create', $this->container->callback(Create::class, 'render')); // phpcs:ignore WPStaging.Security.AuthorizationChecked |
| 87 | |
| 88 | add_action('wp_ajax_wpstg--staging-site--prepare-update', $this->container->callback(PrepareUpdate::class, 'ajaxPrepare')); // phpcs:ignore WPStaging.Security.AuthorizationChecked |
| 89 | add_action('wp_ajax_wpstg--staging-site--update', $this->container->callback(Update::class, 'render')); // phpcs:ignore WPStaging.Security.AuthorizationChecked |
| 90 | |
| 91 | add_action('wp_ajax_wpstg--staging-site--prepare-reset', $this->container->callback(PrepareReset::class, 'ajaxPrepare')); // phpcs:ignore WPStaging.Security.AuthorizationChecked |
| 92 | add_action('wp_ajax_wpstg--staging-site--reset', $this->container->callback(Reset::class, 'render')); // phpcs:ignore WPStaging.Security.AuthorizationChecked |
| 93 | } |
| 94 | } |
| 95 |