multiSiteCondition = $multiSiteCondition ?: new Condition(); } /** * @return Process * @throws \WPML\Auryn\InjectionException */ public function create() { $singleSiteProcess = self::createSingle(); if ( $this->multiSiteCondition->shouldRunWithAllSites() ) { return make( MultiSiteProcess::class, [ ':singleSiteProcess' => $singleSiteProcess, ':pager' => new Pager( self::SITES_PAGER, 1 ) ] ); } else { return $singleSiteProcess; } } /** * @param bool $isBackgroundProcess * * @return SingleSiteProcess * @throws \WPML\Auryn\InjectionException */ public static function createSingle( $isBackgroundProcess = false ) { return make( SingleSiteProcess::class, [ ':pager' => new Pager( self::FILES_PAGER, self::FILES_PAGE_SIZE ), ':manager' => ManagerFactory::create(), ':migrateAdminTexts' => \WPML_Admin_Texts::get_migrator(), ':status' => self::createStatus( $isBackgroundProcess ), ] ); } /** * @param bool $isBackgroundProcess * * @return mixed|\Mockery\MockInterface|Status * @throws \WPML\Auryn\InjectionException */ public static function createStatus( $isBackgroundProcess = false ) { return make( Status::class, [ ':optionPrefix' => $isBackgroundProcess ? Status::class . '_background' : null ] ); } }