diff --git a/administrator/components/com_languages/src/Controller/InstalledController.php b/administrator/components/com_languages/src/Controller/InstalledController.php index d92d01a8d93af..970bc510b6cff 100644 --- a/administrator/components/com_languages/src/Controller/InstalledController.php +++ b/administrator/components/com_languages/src/Controller/InstalledController.php @@ -11,7 +11,7 @@ namespace Joomla\Component\Languages\Administrator\Controller; use Joomla\CMS\Factory; -use Joomla\CMS\Language\Language; +use Joomla\CMS\Language\LanguageFactoryInterface; use Joomla\CMS\Language\LanguageHelper; use Joomla\CMS\Language\Multilanguage; use Joomla\CMS\Language\Text; @@ -45,7 +45,7 @@ public function setDefault() // Switching to the new administrator language for the message if ($model->getState('client_id') == 1) { $language = Factory::getLanguage(); - $newLang = Language::getInstance($cid); + $newLang = Factory::getContainer()->get(LanguageFactoryInterface::class)->createLanguage($cid); Factory::$language = $newLang; $this->app->loadLanguage($language = $newLang); $newLang->load('com_languages', JPATH_ADMINISTRATOR); @@ -93,7 +93,7 @@ public function switchAdminLanguage() // Switching to the new language for the message $languageName = $info['nativeName']; $language = Factory::getLanguage(); - $newLang = Language::getInstance($cid); + $newLang = Factory::getContainer()->get(LanguageFactoryInterface::class)->createLanguage($cid); Factory::$language = $newLang; $this->app->loadLanguage($language = $newLang); $newLang->load('com_languages', JPATH_ADMINISTRATOR); diff --git a/administrator/components/com_languages/src/Model/OverrideModel.php b/administrator/components/com_languages/src/Model/OverrideModel.php index 222c553dd010c..0693b147f3a7b 100644 --- a/administrator/components/com_languages/src/Model/OverrideModel.php +++ b/administrator/components/com_languages/src/Model/OverrideModel.php @@ -12,7 +12,7 @@ use Joomla\CMS\Factory; use Joomla\CMS\Form\Form; -use Joomla\CMS\Language\Language; +use Joomla\CMS\Language\LanguageFactoryInterface; use Joomla\CMS\Language\LanguageHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\MVC\Model\AdminModel; @@ -47,7 +47,7 @@ public function getForm($data = [], $loadData = true) $client = $this->getState('filter.client', 'site'); $language = $this->getState('filter.language', 'en-GB'); - $langName = Language::getInstance($language)->getName(); + $langName = Factory::getContainer()->get(LanguageFactoryInterface::class)->createLanguage($language)->getName(); if (!$langName) { // If a language only exists in frontend, its metadata cannot be diff --git a/administrator/components/com_messages/src/Model/MessageModel.php b/administrator/components/com_messages/src/Model/MessageModel.php index a3d910fbfd785..9214995dd4c82 100644 --- a/administrator/components/com_messages/src/Model/MessageModel.php +++ b/administrator/components/com_messages/src/Model/MessageModel.php @@ -15,9 +15,9 @@ use Joomla\CMS\Component\ComponentHelper; use Joomla\CMS\Factory; use Joomla\CMS\Form\Form; -use Joomla\CMS\Language\Language; use Joomla\CMS\Language\LanguageFactoryAwareInterface; use Joomla\CMS\Language\LanguageFactoryAwareTrait; +use Joomla\CMS\Language\LanguageFactoryInterface; use Joomla\CMS\Language\Text; use Joomla\CMS\Log\Log; use Joomla\CMS\Mail\Exception\MailDisabledException; @@ -360,7 +360,7 @@ public function save($data) $fromUser = $this->getUserFactory()->loadUserById($table->user_id_from); $debug = Factory::getApplication()->get('debug_lang'); $default_language = ComponentHelper::getParams('com_languages')->get('administrator'); - $lang = Language::getInstance($toUser->getParam('admin_language', $default_language), $debug); + $lang = Factory::getContainer()->get(LanguageFactoryInterface::class)->createLanguage($toUser->getParam('admin_language', $default_language), $debug); $lang->load('com_messages', JPATH_ADMINISTRATOR); // Build the email subject and message diff --git a/administrator/components/com_privacy/src/Model/ExportModel.php b/administrator/components/com_privacy/src/Model/ExportModel.php index 35683e2ca526f..3ab9d325791c6 100644 --- a/administrator/components/com_privacy/src/Model/ExportModel.php +++ b/administrator/components/com_privacy/src/Model/ExportModel.php @@ -13,9 +13,9 @@ use Joomla\CMS\Component\ComponentHelper; use Joomla\CMS\Event\Privacy\ExportRequestEvent; use Joomla\CMS\Factory; -use Joomla\CMS\Language\Language; use Joomla\CMS\Language\LanguageFactoryAwareInterface; use Joomla\CMS\Language\LanguageFactoryAwareTrait; +use Joomla\CMS\Language\LanguageFactoryInterface; use Joomla\CMS\Language\Text; use Joomla\CMS\Mail\MailerFactoryAwareInterface; use Joomla\CMS\Mail\MailerFactoryAwareTrait; @@ -208,7 +208,7 @@ public function emailDataExport($id = null) $langCode = $receiver->getParam('language', $lang->getTag()); } - $lang = Language::getInstance($langCode, $lang->getDebug()); + $lang = Factory::getContainer()->get(LanguageFactoryInterface::class)->createLanguage($langCode, $lang->getDebug()); } // Ensure the right language files have been loaded diff --git a/administrator/components/com_privacy/src/Model/RequestModel.php b/administrator/components/com_privacy/src/Model/RequestModel.php index 3ad7988dba5a3..80aa81a00d51b 100644 --- a/administrator/components/com_privacy/src/Model/RequestModel.php +++ b/administrator/components/com_privacy/src/Model/RequestModel.php @@ -13,9 +13,9 @@ use Joomla\CMS\Application\ApplicationHelper; use Joomla\CMS\Factory; use Joomla\CMS\Form\Form; -use Joomla\CMS\Language\Language; use Joomla\CMS\Language\LanguageFactoryAwareInterface; use Joomla\CMS\Language\LanguageFactoryAwareTrait; +use Joomla\CMS\Language\LanguageFactoryInterface; use Joomla\CMS\Language\Text; use Joomla\CMS\Mail\Exception\MailDisabledException; use Joomla\CMS\Mail\MailerFactoryAwareInterface; @@ -286,7 +286,7 @@ public function notifyUserAdminCreatedRequest($id) $langCode = $receiver->getParam('language', $lang->getTag()); } - $lang = Language::getInstance($langCode, $lang->getDebug()); + $lang = Factory::getContainer()->get(LanguageFactoryInterface::class)->createLanguage($langCode, $lang->getDebug()); } // Ensure the right language files have been loaded diff --git a/installation/src/Controller/LanguageController.php b/installation/src/Controller/LanguageController.php index 7ea97a080dfb7..c10694f4d57ff 100644 --- a/installation/src/Controller/LanguageController.php +++ b/installation/src/Controller/LanguageController.php @@ -12,7 +12,7 @@ use Joomla\CMS\Factory; use Joomla\CMS\Installation\Model\SetupModel; -use Joomla\CMS\Language\Language; +use Joomla\CMS\Language\LanguageFactoryInterface; use Joomla\CMS\Language\Text; // phpcs:disable PSR1.Files.SideEffects @@ -67,7 +67,7 @@ public function set() $model->storeOptions($return); // Setup language - Factory::$language = Language::getInstance($return['language']); + Factory::$language = Factory::getContainer()->get(LanguageFactoryInterface::class)->createLanguage($return['language']); // Redirect to the page. $r->view = $this->input->getWord('view', 'setup'); diff --git a/libraries/src/Filter/OutputFilter.php b/libraries/src/Filter/OutputFilter.php index 144453843476c..abf9392e8367d 100644 --- a/libraries/src/Filter/OutputFilter.php +++ b/libraries/src/Filter/OutputFilter.php @@ -10,7 +10,7 @@ namespace Joomla\CMS\Filter; use Joomla\CMS\Factory; -use Joomla\CMS\Language\Language; +use Joomla\CMS\Language\LanguageFactoryInterface; use Joomla\Filter\OutputFilter as BaseOutputFilter; use Joomla\String\StringHelper; @@ -83,7 +83,7 @@ public static function stringURLSafe($string, $language = '') $str = str_replace('-', ' ', $string); // Transliterate on the language requested (fallback to current language if not specified) - $lang = $language == '' || $language == '*' ? Factory::getLanguage() : Language::getInstance($language); + $lang = $language == '' || $language == '*' ? Factory::getLanguage() : Factory::getContainer()->get(LanguageFactoryInterface::class)->createLanguage($language); $str = $lang->transliterate($str); // Trim white spaces at beginning and end of alias and make lowercase diff --git a/libraries/src/Language/Language.php b/libraries/src/Language/Language.php index 8f02b15acdebf..2200af142c71b 100644 --- a/libraries/src/Language/Language.php +++ b/libraries/src/Language/Language.php @@ -155,29 +155,6 @@ public function __construct($lang = null, $debug = false) $this->load(); } - /** - * Returns a language object. - * - * @param string $lang The language to use. - * @param boolean $debug The debug mode. - * - * @return Language The Language object. - * - * @since 1.7.0 - * - * @deprecated 4.3 will be removed in 7.0 - * Use the language factory instead - * Example: Factory::getContainer()->get(LanguageFactoryInterface::class)->createLanguage($lang, $debug); - */ - public static function getInstance($lang, $debug = false) - { - if (!isset(self::$languages[$lang . $debug])) { - self::$languages[$lang . $debug] = Factory::getContainer()->get(LanguageFactoryInterface::class)->createLanguage($lang, $debug); - } - - return self::$languages[$lang . $debug]; - } - /** * Translate function, mimics the php gettext (alias _) function. * diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index 0af8782d81f55..de112ce64f3d6 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -2659,17 +2659,6 @@ parameters: count: 2 path: administrator/components/com_languages/src/Controller/InstalledController.php - - - message: ''' - #^Call to deprecated method getInstance\(\) of class Joomla\\CMS\\Language\\Language\: - 4\.3 will be removed in 7\.0 - Use the language factory instead - Example\: Factory\:\:getContainer\(\)\-\>get\(LanguageFactoryInterface\:\:class\)\-\>createLanguage\(\$lang, \$debug\);$# - ''' - identifier: staticMethod.deprecated - count: 2 - path: administrator/components/com_languages/src/Controller/InstalledController.php - - message: ''' #^Call to deprecated method getLanguage\(\) of class Joomla\\CMS\\Factory\: @@ -2810,17 +2799,6 @@ parameters: count: 1 path: administrator/components/com_languages/src/Model/LanguagesModel.php - - - message: ''' - #^Call to deprecated method getInstance\(\) of class Joomla\\CMS\\Language\\Language\: - 4\.3 will be removed in 7\.0 - Use the language factory instead - Example\: Factory\:\:getContainer\(\)\-\>get\(LanguageFactoryInterface\:\:class\)\-\>createLanguage\(\$lang, \$debug\);$# - ''' - identifier: staticMethod.deprecated - count: 1 - path: administrator/components/com_languages/src/Model/OverrideModel.php - - message: ''' #^Call to deprecated method setError\(\) of class Joomla\\CMS\\MVC\\Model\\BaseModel\: @@ -3616,17 +3594,6 @@ parameters: count: 4 path: administrator/components/com_messages/src/Model/MessageModel.php - - - message: ''' - #^Call to deprecated method getInstance\(\) of class Joomla\\CMS\\Language\\Language\: - 4\.3 will be removed in 7\.0 - Use the language factory instead - Example\: Factory\:\:getContainer\(\)\-\>get\(LanguageFactoryInterface\:\:class\)\-\>createLanguage\(\$lang, \$debug\);$# - ''' - identifier: staticMethod.deprecated - count: 1 - path: administrator/components/com_messages/src/Model/MessageModel.php - - message: ''' #^Call to deprecated method setError\(\) of class Joomla\\CMS\\MVC\\Model\\BaseModel\: @@ -4258,17 +4225,6 @@ parameters: count: 2 path: administrator/components/com_privacy/src/Model/ExportModel.php - - - message: ''' - #^Call to deprecated method getInstance\(\) of class Joomla\\CMS\\Language\\Language\: - 4\.3 will be removed in 7\.0 - Use the language factory instead - Example\: Factory\:\:getContainer\(\)\-\>get\(LanguageFactoryInterface\:\:class\)\-\>createLanguage\(\$lang, \$debug\);$# - ''' - identifier: staticMethod.deprecated - count: 1 - path: administrator/components/com_privacy/src/Model/ExportModel.php - - message: ''' #^Call to deprecated method getLanguage\(\) of class Joomla\\CMS\\Factory\: @@ -4336,17 +4292,6 @@ parameters: count: 4 path: administrator/components/com_privacy/src/Model/RequestModel.php - - - message: ''' - #^Call to deprecated method getInstance\(\) of class Joomla\\CMS\\Language\\Language\: - 4\.3 will be removed in 7\.0 - Use the language factory instead - Example\: Factory\:\:getContainer\(\)\-\>get\(LanguageFactoryInterface\:\:class\)\-\>createLanguage\(\$lang, \$debug\);$# - ''' - identifier: staticMethod.deprecated - count: 1 - path: administrator/components/com_privacy/src/Model/RequestModel.php - - message: ''' #^Call to deprecated method getLanguage\(\) of class Joomla\\CMS\\Factory\: @@ -7349,17 +7294,6 @@ parameters: count: 1 path: installation/src/Controller/LanguageController.php - - - message: ''' - #^Call to deprecated method getInstance\(\) of class Joomla\\CMS\\Language\\Language\: - 4\.3 will be removed in 7\.0 - Use the language factory instead - Example\: Factory\:\:getContainer\(\)\-\>get\(LanguageFactoryInterface\:\:class\)\-\>createLanguage\(\$lang, \$debug\);$# - ''' - identifier: staticMethod.deprecated - count: 1 - path: installation/src/Controller/LanguageController.php - - message: ''' #^Call to deprecated method getLanguage\(\) of class Joomla\\CMS\\Factory\: @@ -9841,17 +9775,6 @@ parameters: count: 1 path: libraries/src/Feed/FeedParser.php - - - message: ''' - #^Call to deprecated method getInstance\(\) of class Joomla\\CMS\\Language\\Language\: - 4\.3 will be removed in 7\.0 - Use the language factory instead - Example\: Factory\:\:getContainer\(\)\-\>get\(LanguageFactoryInterface\:\:class\)\-\>createLanguage\(\$lang, \$debug\);$# - ''' - identifier: staticMethod.deprecated - count: 1 - path: libraries/src/Filter/OutputFilter.php - - message: ''' #^Call to deprecated method getLanguage\(\) of class Joomla\\CMS\\Factory\: