За последние 24 часа нас посетили 19189 программистов и 1885 роботов. Сейчас ищут 875 программистов ...

Куда оптимально помещать часто вызываемые куски кода?

Тема в разделе "PHP для новичков", создана пользователем Namer, 26 сен 2012.

  1. Namer

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

    С нами с:
    14 апр 2010
    Сообщения:
    492
    Симпатии:
    0
    Пишу скрипты для сайта и в нем встречаются часто повторяющиеся куски кода, типа проверки кукис пользователя, на предмет авторизован ли он. Сейчас у меня получается, что в каждом .php файле делаю эту проверку и поэтому в каждый .php файл засовываю код этой проверки.
    Хотел спросить, оптимальный ли это вариант или есть более оптимальные? Например, может лучше подключать проверку кикис инклудом? Или может еще есть какие варианты...
    Интересно знать при этом недостатки и преимущества...
    Наверно если подключать инклудом, то скорость работы скрипта хоть чуть-чуть, но упадет, а нагрузка на винт возрастет?
     
  2. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Самое оптимальное, это когда у тебя подключены все инклуды 1 раз, все что ниже подключается все будет доступно.
    А значит и функции которые выполнились или выполняются выше, будут доступны и проверены.

    Тем самым вы напишете только название функции в которой происходит проверка.

    И все файлы подключите в ней.
    Чтобы не писать в файлах постоянно.

    В файлах дописывать:

    Код (PHP):
    1. if(!defined('CONSTANTA')) {
    2.     exit('<meta> редирект');
    3. } 
    :)))
     
  3. Namer

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

    С нами с:
    14 апр 2010
    Сообщения:
    492
    Симпатии:
    0
    Your, но при инклудах возрастает и нагрузка на диск? Например если у меня 10 инклудов, то при вызове скрипта - 10 раз запрашиваются файлы на диске и значит нагрузка на диск возрастает в 10 раз. А так как обращение к диску это сравнительно медленная операция, то и время выполнения скрипта возрастает... Верно?
     
  4. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Чтобы писать один и тот же код только один раз, были придуманы functions.
     
  5. Namer

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

    С нами с:
    14 апр 2010
    Сообщения:
    492
    Симпатии:
    0
    Так я функциями и пишу. Вопрос как раз в этом и состоит, если у меня в каждом скрипте в среднем по 10 функций, то как это оптимально организовать: в каждый вызываемый скрипт их засовывать или на каждую делать файл и подключать инклудами? Может еще есть варианты...
     
  6. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    ты пишешь файлик

    в нем 10 инклудов

    потом подключаешь этот один файлик

    раз заинклюдились и все...

    ЗЫ у меня порой ощущения, что тут что не прогер, то фейсбук на 6 миллиардов юзеров в день пишет :)

    с другой стороны это верный поход!
     
  7. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Написать библиотеку из 1000 функций в один файл и не париться.
    Объявление 1000 функций будет работать быстрее, чем всего 10 инклудов, инфа 100%
     
  8. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    поставить ускоритель и вобще забить на этот вопрос, ибо подключение файлов в любом количестве будет занимать пяток мс.
     
  9. Namer

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

    С нами с:
    14 апр 2010
    Сообщения:
    492
    Симпатии:
    0
    раз, и 10 раз файлы функций заинклюдились? :)

    Раз инфа 100%, то такой вариант подходит... Не знал, что объявление функций ресурсов не тянет. Так и буду делать.

    Сначала надо сделать, а потом ускорять :) На данном этапе для меня более важно единую правильную архитектуру наметить и следовать ей.
     
  10. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    есть еще такая шняга в пхп, она class называется....но слушай vs!!! Дело говорит
     
  11. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    не имеет отношения к количеству файлов =)

    Добавлено спустя 2 минуты 12 секунд:
    что вот ты веришь джентльмену на слово? Возьми да померяй. ПХП позволяет мерить ажно микросекундами
     
  12. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    этот мем =) Но раз такое дело, интересно измерить
    viewtopic.php?f=5&t=19244&p=336360#p336360
    1 млн. инклуд одного и того же пустого файла - 14 секунд.