За последние 24 часа нас посетили 17611 программистов и 1722 робота. Сейчас ищут 898 программистов ...

Что оптимальнее

Тема в разделе "Прочие вопросы по PHP", создана пользователем SVFox, 24 янв 2008.

  1. SVFox

    SVFox Активный пользователь

    С нами с:
    14 окт 2007
    Сообщения:
    8
    Симпатии:
    0
    Здравствуйте!

    Хочется узнать мнение о следующем:

    например создаю файл содержащий переменные языка сайта,

    что лучше сделать? создать XML и парсить его, создать константы и подгружать их, или создать массив и использовать его?
     
  2. Ti

    Ti Активный пользователь

    С нами с:
    3 июл 2006
    Сообщения:
    2.378
    Симпатии:
    1
    Адрес:
    d1.ru, Екатеринбург
    используйте что Вам удобней и проще
     
  3. SVFox

    SVFox Активный пользователь

    С нами с:
    14 окт 2007
    Сообщения:
    8
    Симпатии:
    0
    Удобнее это понятно, я о другом спросил, что оптимальнее

    например создать файлик содержащий константы или массив, его подгружать и это будет загружаться в память, потом только дергай нужную переменную.

    XML нужно подгружать тоже и тоже обращаться к нужной секции.

    Что менее грузит память и вообще что оптимальнее?
     
  4. Ti

    Ti Активный пользователь

    С нами с:
    3 июл 2006
    Сообщения:
    2.378
    Симпатии:
    1
    Адрес:
    d1.ru, Екатеринбург
    1. XML грузит и менее оптимальное
    2. почему в вариантах нету базы данных?
    3. какого формата данные и их размер?
    если данных не много то скорее всего не имеет значения
     
  5. SVFox

    SVFox Активный пользователь

    С нами с:
    14 окт 2007
    Сообщения:
    8
    Симпатии:
    0
    1. понятно.
    2. БД не хочу использовать, так как например еще нет подключения к БД а идет проверка шаблонов и прочего, нужно выдавать сообщение на выбранном языке, или сообщение что нет возможности подключиться к БД.
    3. Чем больше проект, тем больше данные, формат примерно такой define('TEXT_CLOSE_SITE','Закрыть сайт на обслуживание')
     
  6. dark-demon

    dark-demon Активный пользователь

    С нами с:
    16 фев 2007
    Сообщения:
    1.920
    Симпатии:
    1
    Адрес:
    леноград
    а если нет подключения к файлу? :)
     
  7. SVFox

    SVFox Активный пользователь

    С нами с:
    14 окт 2007
    Сообщения:
    8
    Симпатии:
    0
    это проще
    Код (Text):
    1.  
    2. if(file_exists('файл с данными')) {
    3.    die(и т.п.);
    4. }
    вопрос не об этом, я так понимаю Вы предлагаете использовать БД ? - это оптимальнее всего для ресурсов сервера?
     
  8. SVFox

    SVFox Активный пользователь

    С нами с:
    14 окт 2007
    Сообщения:
    8
    Симпатии:
    0
    Наверное я не совсем понятно изложил свою мысль:

    1. нужно создать многоязычность сайта, и сразу нужно решить как все таки будет эта многоязычность меньше напрягать сервер, пусть даже незначительно.

    - вариант 1. создать файлы с константами :
    Код (Text):
    1. define(‘ПЕРЕМЕННАЯ’,’ЗНАЧЕНИЕ’);
    - вариант 2. массив:
    Код (Text):
    1. $language[‘ПЕРЕМЕННАЯ’] = 'ЗНАЧЕНИЕ';
    - вариант 3 создать XML файл:
    Код (Text):
    1. <language>
    2.    <ПЕРЕМЕННАЯ>ЗНАЧЕНИЕ</ПЕРЕМЕННАЯ>
    3. <language>

    Все это так или иначе будет использовать ресурсы сервера, при маленькой посещаемости сайта, сильно и не будет заметно, но при большой посещаемости увеличится нагрузка на все. И если каждый отдельный модуль оптимизировать изначально, то серверу будет дышать полегче.
     
  9. Ti

    Ti Активный пользователь

    С нами с:
    3 июл 2006
    Сообщения:
    2.378
    Симпатии:
    1
    Адрес:
    d1.ru, Екатеринбург
    если так сильно заморачиваться то вынести каждую фразу в отдельный файл подгружать с кешом
     
  10. SVFox

    SVFox Активный пользователь

    С нами с:
    14 окт 2007
    Сообщения:
    8
    Симпатии:
    0
    А если не заморачиваться, то какой из этих трех вариантов оптимальнее?
     
  11. Ti

    Ti Активный пользователь

    С нами с:
    3 июл 2006
    Сообщения:
    2.378
    Симпатии:
    1
    Адрес:
    d1.ru, Екатеринбург
     
  12. SVFox

    SVFox Активный пользователь

    С нами с:
    14 окт 2007
    Сообщения:
    8
    Симпатии:
    0
    Понятно, вопрос закрыт!
     
  13. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    А по мне все три конкретное извращение.
    Лично я использую gettext - просто, быстро и можно давать переводить кому угодно - пересылаешь фаил с данными и программку - он в ней открывает и делает перевод, сохраняет, присылает вам, закачиваете на сервер и сразу всё пашет.
    И языки хоть все в мире впихивай если UTF используете.
     
  14. Anonymous

    Anonymous Guest

    Поделись ощущениями? Я вот тоже в связи с глобальной линуксинузацией хочу на gettext перейти...
     
  15. dark-demon

    dark-demon Активный пользователь

    С нами с:
    16 фев 2007
    Сообщения:
    1.920
    Симпатии:
    1
    Адрес:
    леноград
    ума не приложу, как можно переводить текст не зная контекст его употребления...
     
  16. AlexGousev

    AlexGousev Активный пользователь

    С нами с:
    25 мар 2006
    Сообщения:
    1.505
    Симпатии:
    0
    Адрес:
    Москва
    Кстати, чем под виндовсом можно po-файлики делать?
     
  17. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
  18. AlexGousev

    AlexGousev Активный пользователь

    С нами с:
    25 мар 2006
    Сообщения:
    1.505
    Симпатии:
    0
    Адрес:
    Москва
    Sergey89
    Так под windows он больно уж падуч…
     
  19. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    Ощущения нормальные, пользуемся без проблем.

    Да нормальный этот poedit, просто не надо мучать его извращениями, у меня ни разу не зависал пока что :)
     
  20. antonn

    antonn Активный пользователь

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    используйте массив. каждый ключ - определенная фраза, выводите $language['hello'], а уже в этот массив можно загружать разные языки.
     
  21. Dagdamor

    Dagdamor Активный пользователь

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    antonn
    +1, тоже так делаю. Самый быстрый способ из перечисленных (особенно если установлен опкод кеш - тогда он вообще вне конкуренции), чуть быстрее определения через константы, да и пространство имен констант не засирается, ну и на порядок быстрее варианта с XML.
     
  22. dark-demon

    dark-demon Активный пользователь

    С нами с:
    16 фев 2007
    Сообщения:
    1.920
    Симпатии:
    1
    Адрес:
    леноград
    самый быстрый вариант - это клиентская локализация на основе xml :)
     
  23. Anonymous

    Anonymous Guest

    мсье знает толк в извращениях... ;)