1. PHP / Говнокод #3252

    +163

    1. 1
    $NETCAT_FOLDER = join( strstr(__FILE__, "/") ? "/" : "\\", array_slice( preg_split("/[\/\\\]+/", __FILE__), 0, -3 ) ).( strstr(__FILE__, "/") ? "/" : "\\" );

    Метод определения абсолютного пути к папке, лежащей на сколько-то уровней выше текущей.

    Запостил: telnet, 18 Мая 2010

    Комментарии (7) RSS

    • Вообще в проекте необходимо держать какой-нибудь __define.php в папке проекта. А в этом самом файле "дефайнить" абсолютный путь в нему. В остальных файлах относительно ссылаться на него с помощью ../../../__define.php

      ИМХО.
      Ответить
      • Согласен. Другой вариант - иметь единую точку входа в приложение (бишь index.php) и объявлять всё в ней.
        Ответить
    • А чем не устраивает константа __FILE__?
      Ответить
    • как вариант дописывать в htaccess setEnv с путём, а в проекте уже использую её через $_SERVER.
      Ответить
    • дык а dirname(__FILE__) . '/../../__define.php'; =)
      Ответить
      • или в php5.3 просто __DIR__
        Ответить
        • Вариант, но PHP 5.3 пока мало распространён. А NetCat под ним вообще пахать отказалась. Как выяснилось, там по кой-то хер применён вызов ReflectionClass, который ещё даже не документирован. Как обезьяны до этого додумались и какого фига их вообще к интерфейсу рефлексии потянуло - сие тайна великая есть. Ну вот и напоролись на то, что поведение недокументированных фич может меняться непредсказуемо.
          Ответить

    Добавить комментарий