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