PluginProbe
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 4.2.2
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v4.2.2
4.7.2 4.7.1 4.7.0 4.6.6 4.6.5 4.6.4 4.6.3 4.6.2 4.6.1 4.6.0 4.5.1 4.5.0 4.4.2 4.4.1 4.4.0 4.3.3 4.3.2 4.3.1 4.3.0 4.2.3 4.2.2 4.2.1 1.0.3 1.0.4 1.0.5 All 281 releases
surecart / app / src / Sync / SyncServiceProvider.php
SyncServiceProvider.php
94 lines 3.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace SureCart\Sync;
4
5 use SureCart\Sync\CustomerSyncService;
6 use SureCart\Sync\PostSyncService;
7 use SureCart\Sync\ProductSyncService;
8 use SureCart\Sync\Jobs\Cleanup\CollectionsCleanupJob;
9 use SureCart\Sync\Jobs\Cleanup\ProductsCleanupJob;
10 use SureCart\Sync\Jobs\CleanupJob;
11 use SureCart\Sync\Jobs\SyncJob;
12 use SureCart\Sync\Jobs\JobService;
13 use SureCart\Sync\Jobs\Sync\ProductsSyncJob;
14 use SureCart\Sync\Tasks\ProductCleanupTask;
15 use SureCart\Sync\Tasks\ProductSyncTask;
16 use SureCart\Sync\ProductsSyncService;
17 use SureCart\Sync\StoreSyncService;
18 use SureCart\Sync\Tasks\CollectionCleanupTask;
19 use SureCartCore\ServiceProviders\ServiceProviderInterface;
20
21 /**
22 * WordPress Users service.
23 */
24 class SyncServiceProvider implements ServiceProviderInterface {
25 /**
26 * Register all dependencies in the IoC container.
27 *
28 * @param \Pimple\Container $container Service container.
29 * @return void
30 */
31 public function register( $container ) {
32 /**
33 * Get the app instance.
34 */
35 $app = $container[ SURECART_APPLICATION_KEY ];
36
37 /**
38 * Async tasks. These handle scheduled tasks.
39 */
40 $container['surecart.tasks.product.sync'] = fn () => new ProductSyncTask();
41 $container['surecart.tasks.product.cleanup'] = fn () => new ProductCleanupTask();
42 $container['surecart.tasks.collection.cleanup'] = fn () => new CollectionCleanupTask();
43
44 /**
45 * Jobs. These schedule the async tasks.
46 */
47 $container['surecart.jobs'] = fn() => new JobService( $app );
48 $container['surecart.jobs.sync'] = fn() => new SyncJob( $app );
49 $container['surecart.jobs.cleanup'] = fn() => new CleanupJob( $app );
50 $container['surecart.jobs.cleanup.collections'] = fn() => new CollectionsCleanupJob( $container['surecart.tasks.collection.cleanup'] );
51 $container['surecart.jobs.cleanup.products'] = fn() => ( new ProductsCleanupJob( $container['surecart.tasks.product.cleanup'] ) )->setNext( $container['surecart.jobs.cleanup.collections'] );
52 $container['surecart.jobs.sync.products'] = fn() => ( new ProductsSyncJob( $container['surecart.tasks.product.sync'] ) )->setNext( $container['surecart.jobs.cleanup.products'] );
53
54 /**
55 * Services
56 */
57 $container['surecart.sync'] = fn () => new SyncService( $app );
58 $container['surecart.sync.product'] = fn () => new ProductSyncService( $app );
59 $container['surecart.sync.products'] = fn () => new ProductsSyncService( $app );
60 $container['surecart.sync.store'] = fn () => new StoreSyncService();
61 $container['surecart.process.product_post.sync'] = fn () => new PostSyncService();
62 $container['surecart.sync.customers'] = fn () => new CustomerSyncService();
63 $container['surecart.sync.batch'] = fn () => new BatchCheckService();
64 $container['surecart.sync.content'] = fn () => new ContentSyncService( $app );
65
66 // Alias the sync service.
67 $app->alias( 'sync', 'surecart.sync' );
68 }
69
70 /**
71 * Bootstrap any services if needed.
72 *
73 * @param \Pimple\Container $container Service container.
74 * @return void
75 */
76 public function bootstrap( $container ) {
77 // call the jobs - this is required because ajax handlers are only available in the constructor.
78 $container['surecart.jobs.cleanup.collections']->bootstrap();
79 $container['surecart.jobs.cleanup.products']->bootstrap();
80 $container['surecart.jobs.sync.products']->bootstrap();
81
82 // bootstrap services.
83 $container['surecart.sync.products']->bootstrap();
84 $container['surecart.sync.customers']->bootstrap();
85 $container['surecart.sync.store']->bootstrap();
86 $container['surecart.sync.content']->bootstrap();
87
88 // Bootstrap tasks.
89 $container['surecart.tasks.product.sync']->bootstrap();
90 $container['surecart.tasks.product.cleanup']->bootstrap();
91 $container['surecart.tasks.collection.cleanup']->bootstrap();
92 }
93 }
94