За последние 24 часа нас посетили 16749 программистов и 1635 роботов. Сейчас ищут 880 программистов ...

Как правильно подключать файлы

Тема в разделе "PHP для новичков", создана пользователем VLK, 18 янв 2014.

  1. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    Подскажите, как правильно подключать файлы, изначально я вычитал что нельзя обращаться к файлу в таком виде:
    Код (Text):
    1. require_once ( '../my_fns.php' );
    надо писать так:
    Код (Text):
    1. require_once (  $_SERVER['root'] . 'my_fns.php' );
    у меня устроено все так:

    в inc.php хранится то, что необходимо на всех страницах, например:
    Код (Text):
    1. session_start();
    2. function __autoload($cn) { require_once ( $_SERVER['root'].'lib/'.$cn.'.php' ); }
    3. // и т.д.
    а во всех прочих страницах присутствует в самом начале:
    Код (Text):
    1. require_once (  $_SERVER['root'] . 'inc.php' );

    я обращался так и все было, но сейчас я перехожу на страницу которая находится в не корневой папке:
    auth/login.php

    при этом в файле login.php присутствует запись:
    Код (Text):
    1. require_once (  $_SERVER['root'] . 'inc.php' );
    и получаю ошибку, что данный файл не найден.
    Как быть, как правильно подключать файлы? очень не хочется в части файлов писать:
    Код (Text):
    1. require_once (  $_SERVER['root'] . '../inc.php' );
    хочется однообразия или это не возможно в данном случае?
     
  2. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    А чем это они объясняли?
     
  3. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    PHP ищет сперва текущий каталог , а затем отталкиваясь от текущего места положения ищет целевой каталог - слишком много поисков

    при $_SERVER['root'] он ни чего не ищет, а знает точно.


    примерно как то так.
     
  4. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    Косяк обнаружен:
    $_SERVER['root'] не существует, за место него должно быть - $_SERVER['DOCUMENT_ROOT']

    тему наверное можно удалить.
     
  5. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Интересно а они замеряли или просто рассуждали за чашкой чая после школы...
    Даже если и так, сколько инклудов используется для создания 1 страницы? Пусть даже 30, выигрыш в производительности будет не заметен.
    Чувствую не с той оптимизации ты начал.
     
  6. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    30 О_о для меня каждый include как соль на рану, стараюсь их минимизировать до..


    ну там еще один косяк есть с простыми путями, я сейчас точно не помню как он происходит, но там что то типа когда я из не корневой папки подключаю файл, а он в свою очередь подключает файл из корневой папки или как то так.
    А возможно та ошибка что у меня сейчас возникла она и есть, вообщем то это лечится при помощи $_SERVER['DOCUMENT_ROOT']
     
  7. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Чем тебе инклуды насолили?
     
  8. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    Я просто очень экономный человек :)
    А меня уже напугали что одно подключение пустого файла равно примерно 20-30 вызовам пустой функции, вот и экономлю производительность :)
     
  9. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    1 вызов фпустой функции у меня это где-то 8 микросекунд.
    это 125 тысяч вызовов в секунду.

    вы эта, вы пейте валерьяночку, занимайтесь йогой :D и пишите код не обращая внимания на всю эту хрень.