Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Trivial question: Array || constants?

714
15 июня 2010 года
clgs
226 / / 29.10.2008
Здравствуйте.
Подскажите как лучше хранить и обращаться к "языковым переменным"?
т.е. сейчас есть массив из порядка 300 элеменов, к которым я обращаюсь через класс (для удобства), вот:
Код:
// ßçûêîâîé êëàññ
class lang{
    public $words=array();
    public function __construct($lang='ru',$charset='utf-8'){
        if(file_exists($_SERVER['DOCUMENT_ROOT'].'/kernel/lang/'.$lang.'-'.$charset.'.php')){
            include($_SERVER['DOCUMENT_ROOT'].'/kernel/lang/'.$lang.'-'.$charset.'.php');
            if(isset($words)&&is_array($words)){
                $this->words=$words;
                unset($words);
            }
        }
        else
            MsgDie('Not found lang file');
    }
    public static function AddWordForArray($array=''){
        global $_lang;
        if(is_array($array)){
            $_lang->words+=$array;
            unset($array);
        }
    }
    public static function word($word=''){
        global $_lang;
        return (isset($_lang->words[$word]))?$_lang->words[$word]:$word;
    }
}

Я вот думаю что это не очень правельно. Что если обрашяться через функцию к конмтантам? Ну собственно хотелось бы услышать не только своё мнение)
Данное "творчетсво" используется только для админки сайта.
369
15 июня 2010 года
Kesano
451 / / 09.10.2007
Если оно работает и работает так как нужно, тогда зачем огород городить?...
Тем более для админки, которой пользуется только доверенный пользователь?

Сий класс не может жрать много ресурсов.
Работает корректно?
Требуемы функционал обеспечивает?
Гибкий?
Пусть так и будет...
244
15 июня 2010 года
UAS
2.0K / / 19.07.2006
Хз, у меня обычный
 
Код:
$lang = array();
$lang["admin"]["title"] = "Админка";
// ...

И т.д. в таком духе. Подключается обычным include - и никаких проблем.

Можно, конечно, для корректности, обернуть все это дело также в функцию для отхода от привязки к имени $lang, но у себя в проектах смысла в этом особого не видел.
714
15 июня 2010 года
clgs
226 / / 29.10.2008
2Kesano,Работает так как надо.
Меня смущает только размер массива.
2UAS, в классе удобно чтоб не объявлять глабально, на наличие проверять, и подгружать дополнительные.
244
15 июня 2010 года
UAS
2.0K / / 19.07.2006
Ну тогда уберите из класса хотя бы эти global. Крайней раздражающая меня вещь (меня по-крайней мере).
Ничто не мешает все это завернуть в синглтон-класс, в котором и будет храниться сам $lang. Кода станет меньше + он намного приятнее станет + будут все удобства класса + избавитесь от не совсем нужного здесь __construct (если юзать singleton).
4
16 июня 2010 года
mike
3.7K / / 01.10.2002
Чем проще, тем лучше. Если просто массив с фразами не подходит, то тогда [phpdoc]gettext[/phpdoc]
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог