За последние 24 часа нас посетили 34943 программиста и 1759 роботов. Сейчас ищут 803 программиста ...

Проблема с инклюдом, а точнее с роутингом.

Тема в разделе "Вопросы от блондинок", создана пользователем SeniorOracleDeveloper, 11 апр 2010.

  1. SeniorOracleDeveloper

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

    С нами с:
    11 апр 2010
    Сообщения:
    7
    Симпатии:
    0
    Всем Привет.

    Есть структура:
    [​IMG]

    index.php (require_once('../includes/db.shell.php');)
    далее
    db_shell.php (require_once('classes/MySQLDatabase.class.php');)
    а
    MySQLDatabase.class.php ( require_once("../config.php");)

    НО !
    Warning: require_once(../config.php) [function.require-once]: failed to open stream: No such file or directory in E:\Development\WorkSpaces\StroyPortal.ua\includes\classes\MySQLDatabase.class.php on line 2

    а вот
    MySQLDatabase.class.php ( require_once("../includes/config.php");)
    тобиш вызов config.php для MySQLDatabase.class.php с папки где находится index.php - работает !

    Подскажите как сделать так чтобы MySQLDatabase.class.php брал config.php из под папки classes,
    а не из папки вызова ?



    _________
    заранее спс.
     
  2. Simpliest

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

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Видимо резолвить пути полностью? Нет?
     
  3. SeniorOracleDeveloper

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

    С нами с:
    11 апр 2010
    Сообщения:
    7
    Симпатии:
    0
    то-есть при помощи абсолютных путей ?

    Была идея.

    помогите разобратся, как их собрать.

    вручную писать полные пути (Е:...), ведь домен прикреплен к папку public_area
     
  4. Simpliest

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

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Следует раз и навсегда определиться с двумя вещами.
    1. структурой сайта.
    2. списком точек входа.

    Если точка входа одна, то решение тривиально, и уже не раз было на форуме -
    в ней
    PHP:
    1. <?php
    2. define(APP_PATH, dirname(realpath(__FILE__)));
    3.  
    В остальных файлах все пути указываются относительно APP_PATH
    например
    PHP:
    1. <?php
    2. include APP_PATH . '/../mypath/config.php';
    3.  
    Если точек входа несколько, то проще подключать конфиг именно из них, а не из всех подключаемых файлов.
     
  5. SeniorOracleDeveloper

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

    С нами с:
    11 апр 2010
    Сообщения:
    7
    Симпатии:
    0
    Спасибо, конструктивно и понятно.
     
  6. Volt(220)

    Volt(220) Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    1.640
    Симпатии:
    1
    А зачем realpath на __FILE__? Для совместимости с PHP < PHP4.0.2 ?
     
  7. Simpliest

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

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Старое правило :)

    Работает - не трожь. :D
     
  8. Volt(220)

    Volt(220) Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    1.640
    Симпатии:
    1
    Понял.
    У меня dirname(__FILE__) работает.
    Не трогаю.
    =))