Здравствуйте.
В Laravel чтобы изменить язык приложения нужно выполнить
App::setLocale();
// или
app()->setLocale();
Вот мне стало интересно как реализован второй способ и каковы его плюсы и минусы.
К функции (или как оно называется) доступ есть из любого места, а вот класс нужно подключать каждый раз через
use
. Пытался найти инфу в интернете, но безуспешно. Буду благодарен за любую помощь и информацию по этому вопросу. PHP я только изучаю, но можете пинать. :)
Методом тыка вот так я это реализовал:
class App
{
protected static $instance = null;
protected $locale = 'ru';
public static function getIstance() {
if ( self::$instance === null ) self::$instance = new self();
return self::$instance;
}
public function __construct() {}
public function __clone() {}
public function setLocale( $locale ) {
$this->locale = $locale;
}
public function getLocale( $locale ) {
return $this->locale;
}
}
function app() { return App::getIstance(); }
app()->getLocale(); // ru
app()->setLocale('en');
app()->getLocale(); // en
В этом способе я не уверен, хоть он и работает.