/** * @static * @return SJB_I18N */ public static function create() { $instance = new SJB_I18N(); $settings = new SJB_Settings(); $systemSettings = new SJB_System(); $session = new SJB_Session(); $dateFormatter = new SJB_DateFormatter(); $languageSettings = new I18NLanguageSettings(); $context = new I18NContext(); $admin = new I18NAdmin(); $translator = new I18NTranslator(); $datasource = I18NDataSource::getInstance(); $langSwitcher = new I18NSwitchLanguageAgent(); $translationValidatorFactory = new SJB_TranslationValidatorFactory(); $languageValidatorFactory = new SJB_LanguageValidatorFactory(); $generalValidationFactory = new GeneralValidationFactory(); $reflectionFactory = new ReflectionFactory(); $phraseSearcher = new I18NPhraseSearcher(); $fullTextMatcher = new FullTextMatcher(); $phraseSearchCriteriaFactory = new I18NPhraseSearchCriteriaFactory(); $formatterFactory = new I18NFormatterFactory(); $fileHelper = new I18NFileHelper(); $langSwitcher->setContext($context); $langSwitcher->setSession($session); $langSwitcher->setI18N($instance); $context->setSettings($settings); $context->setSession($session); $context->setLanguageSettings($languageSettings); $context->setSystemSettings($systemSettings); $fileSystem = SJB_ObjectMother::createFileSystem(); $fileHelper->setContext($context); $fileHelper->setFileSystem($fileSystem); $datasource->init($context, $fileHelper); $admin->setDataSource($datasource); $languageSettings->setContext($context); $languageSettings->setDataSource($datasource); $translator->setContext($context); $translator->setDatasource($datasource); $languageValidatorFactory->setContext($context); $languageValidatorFactory->setGeneralValidationFactory($generalValidationFactory); $languageValidatorFactory->setReflectionFactory($reflectionFactory); $languageValidatorFactory->setLanguageDataSource($datasource); $translationValidatorFactory->setContext($context); $translationValidatorFactory->setGeneralValidationFactory($generalValidationFactory); $translationValidatorFactory->setReflectionFactory($reflectionFactory); $translationValidatorFactory->setLanguageDataSource($datasource); $phraseSearcher->setDataSource($datasource); $phraseSearcher->setMatcher($fullTextMatcher); $formatterFactory->setContext($context); $instance->setTranslator($translator); $instance->setAdmin($admin); $instance->setLangSwitcher($langSwitcher); $instance->setContext($context); $instance->setLanguageValidatorFactory($languageValidatorFactory); $instance->setTranslationValidatorFactory($translationValidatorFactory); $instance->setReflectionFactory($reflectionFactory); $instance->setPhraseSearcher($phraseSearcher); $instance->setPhraseSearchCriteriaFactory($phraseSearchCriteriaFactory); $instance->setFormatterFactory($formatterFactory); $instance->setFileHelper($fileHelper); return $instance; }