Translate extension for MediaWiki
 
Loading...
Searching...
No Matches
MoveTranslatableBundleJob.php
1<?php
2declare( strict_types = 1 );
3
4namespace MediaWiki\Extension\Translate\MessageGroupProcessing;
5
6use Job;
9use MediaWiki\MediaWikiServices;
10use Title;
11use User;
12
20class MoveTranslatableBundleJob extends Job {
21 private TranslatableBundleMover $bundleMover;
22
23 public static function newJob(
24 Title $source,
25 Title $target,
26 array $moves,
27 string $reason,
28 User $performer
29 ): self {
30 $params = [
31 'source' => $source->getPrefixedText(),
32 'target' => $target->getPrefixedText(),
33 'moves' => $moves,
34 'summary' => $reason,
35 'performer' => $performer->getName(),
36 ];
37
38 return new self( $target, $params );
39 }
40
41 public function __construct( Title $title, array $params = [] ) {
42 parent::__construct( 'MoveTranslatableBundleJob', $title, $params );
43 $this->bundleMover = Services::getInstance()->getTranslatableBundleMover();
44 }
45
46 public function run() {
47 $sourceTitle = Title::newFromText( $this->params['source'] );
48 $targetTitle = Title::newFromText( $this->params['target'] );
49
50 $userFactory = MediaWikiServices::getInstance()->getUserFactory();
51 $performer = $userFactory->newFromName( $this->params['performer'] );
52
53 $this->bundleMover->moveSynchronously(
54 $sourceTitle,
55 $targetTitle,
56 $this->params['moves'],
57 $performer,
58 $this->params['summary']
59 );
60
61 return true;
62 }
63}
Contains the core logic to validate and move translatable bundles.
Minimal service container.
Definition Services.php:44