За последние 24 часа нас посетили 18757 программистов и 1706 роботов. Сейчас ищут 956 программистов ...

Использование суперглобальных переменных.

Тема в разделе "PHP для новичков", создана пользователем Asdal, 29 авг 2013.

  1. Asdal

    Asdal Новичок

    С нами с:
    27 авг 2013
    Сообщения:
    9
    Симпатии:
    0
    Хочу спросить следующее. Искал ответ на этот вопрос, но не нашел конкретного ответа.
    Можно ли определять свои переменные в $_SERVER[].
    То есть хотелось бы сделать файл конфигурации, чтобы его переменные можно было бы вставить в любую функцию.

    Что-то вроде этого configuration.php
    Код (Text):
    1.  
    2. <?php
    3. $_SERVER['GEDB_PARAM_1'] = 'param1';
    4. $_SERVER['GEDB_PARAM_2'] = 'param2';
    5. $_SERVER['GEDB_PARAM_3'] = 'param3';
    Если нет, то как можно еще сделать? register_globals включать не буду.
    Заранее спасибо.
     
  2. Asdal

    Asdal Новичок

    С нами с:
    27 авг 2013
    Сообщения:
    9
    Симпатии:
    0
    Ну что за игнор.
     
  3. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    можно или нельзя - проверяется за полминуты
     
  4. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.251
    Адрес:
    там-сям
    Наверное автор хотел сказать "практикуется ли такое?". Возможно напрямую в $_SERVER и не принято присваивать, но в него попадают параметры из httpd.conf и это используется:
    http://stackoverflow.com/questions/5448943/setenv-applicati ... -framework
     
  5. Asdal

    Asdal Новичок

    С нами с:
    27 авг 2013
    Сообщения:
    9
    Симпатии:
    0
    Да именно это и хотел узнать, спасибо!

    Добавлено спустя 1 минуту 15 секунд:
    Ну ясно понятно, что присвоится значение, а вот этично ли такое действие.
     
  6. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Массив не обидится, будьте уверены :)
     
  7. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    для когото этично, для когото нет.
    если вас не напрягает то что этот суперглобальный массив создан совсем для другого - то пользуйтесь.
    напрягает - делайте типа Реестра (Registry) или чтото подобное. функция тоже глобальна. можно через нее писать/читать параметры, а хранить внутри в статике... вариантом много. выбирайте то что соответсвует вашей этике и принципам рабьоты вашего приложения.
     
  8. Asdal

    Asdal Новичок

    С нами с:
    27 авг 2013
    Сообщения:
    9
    Симпатии:
    0
    Благодарю за ответ!
     
  9. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    никто даже не спросил ЗАЧЕМ
     
  10. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    ТС же написал
    т.е. хочет чтоб конфиг был доступен везде. нормальная ситуация. для небольших проектов пойдет.
    для серьезных - кол-во конфигов нужно больше. там для каждой подсистемы свои и т.д. нужно уже более гибкое решение
     
  11. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    статик класс виден везде
     
  12. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.251
    Адрес:
    там-сям
    Если некие классы имеют общего предка (типа Component), то общий реестр можно организовать через protected static свойство этого родительского класса, которое будет доступно как self::$config. Неродственным классам соответственно оно недоступно.

    В Laravel 4 есть звездная функция app(). Без параметров она возвращает "приложение", по сути это и есть хранилище конфигурации + фабрика компонентов. А если вызвать app(имя_компонента) то будет найден/создан компонент.
     
  13. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Лучше все же сделать статичный класс и не париться :)
     
  14. Asdal

    Asdal Новичок

    С нами с:
    27 авг 2013
    Сообщения:
    9
    Симпатии:
    0
    Благодарю за ответы, есть проект который уже ранее запилили на функциях, и не хотелось бы его переписывать, вот по этому и извращаюсь как могу)
     
  15. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    А PHP не сойдет с ума, если использовать оба подхода одновременно, не волнуйтесь:) Никто не говорит, мол, переписывайте все нафиг на ООП.
     
  16. Asdal

    Asdal Новичок

    С нами с:
    27 авг 2013
    Сообщения:
    9
    Симпатии:
    0
    Да тоже как вариант конечно )) учту
     
  17. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    переписывать не потребуется. этот класс ни с чем не связан, и не требует даже создания экземпляров.
     
  18. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    $_SERVER не сессия, которая будет везде видна, якобы, все равно придется подключать, то, где присваивается или переопределяется, новые ключи и значения. В пе-ремешку уже делать не имеет смысла. Но на стороне "web-сервера" если будете делать, то можно сделать как сказал artoodetoo.

    А самое лучшее сделать отдельный файл с классом и чтобы он только на сервере мог запрашиваться.
    И сделать в админку (или отдельно) редактирование настроек класса, чтобы могли: добавлять, изменять, удалять, перемещать (поднимать, опускать): настройки класса "key=>value". После сохранения файл изменится, если одно и тоже сохранять не надо.
     
  19. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    wat?
     
  20. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    what?
     
  21. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
  22. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
  23. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    What what in the butt

    О чем речь?
     
  24. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    об этом наборе слов:
     
  25. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    я за статик класс и ниипет

    Статик ХОЙ!