Тільки завжди потрібно ставити не відносні шляхи, а абсолютні.
[PHP]
include_once (dirname (__ FILE__). '/../../include/menu.php');
[PHP]
ольшое погоджуся саме з цим методом :)
а ось минулий пост з серії Joomla style programming.
а ось минулий пост з серії Joomla style programming.
Минулий пост - там де один раз в конфіги задається константа put = "/home/login/www/donem.ru/public_html/"; а потім просто юзается де треба конкатенація - із серії "думаю головою коли програмлю".
А включення де попало dirname (__ FILE__). '/../../include/menu.php'); це звичайно крутий хак-стайл, ось тільки коли у вас інклуд або меню переїде в іншу папку матів буде.
Та й рахувати постійно на скільки рівнів вгору ломиться - заняття для кодерів, а не програмістів.
"The downside here is that this expression is dynamic - executed at run-time. Meaning it's slower and less toolable and also makes a bad habit of putting dynamic things into include (which is not a problem here, since it's" static dynamic "thing , but still a bad habit). "
хахаха, ну ладно. мене все одно не переконати. питання зручності. насправді ні швидкість, ні трирівневість ні заважають використовувати обидва методи.
- шлях визначається автоматично і його не доведеться коригувати навіть при зміні хостингу
і ще питання, навіщо використовувати абсолютні шляхи завжди?
Це потрібно для того, щоб PHP інтерпритатор не горів у пекельному вогні. Ну, і, звичайно, швидкість + зручність.
Минулий пост - там де один раз в конфіги задається константа put = "/home/login/www/donem.ru/public_html/"; а потім просто юзается де треба конкатенація - із серії "думаю головою коли програмлю".
Цей минулий пост з роду: "переїду на інший хостинг - буду переписувати всю CMS".
А включення де попало dirname (__ FILE__). '/../../include/menu.php'); це звичайно крутий хак-стайл, ось тільки коли у вас інклуд або меню переїде в іншу папку матів буде.
Покажіть мені хоч один спосіб, при якому не буде матів, якщо файл "переїде"! (За винятком способу занесення імені файлу в змінну і її подальше використання)
Та й рахувати постійно на скільки рівнів вгору ломиться - заняття для кодерів, а не програмістів.
Поясніть своє розуміння термінів "кодер" і "програміст".
хахаха, ну ладно. мене все одно не переконати.
Ну і даремно. Огидне позиція.
-----
Найвірніше рішення, це написати на початку index.php наступний рядок (аля / aka DataLife Engine):
а потім використовувати її префіксом у всіх викликах функцій include () / include_once () / require () / require_once (). Тільки тут головне не забути, що шлях буде без кінцевого слеша.
ще простіше інклуд по розумному, а не розрахунки робити дурні і безглузді. у мене позіія найправильніша, бо я впевнений у своїй точці зору. та й взагалі це разгвор на порожньому місці "як інклуд файл", тема схожа з "як написати хелло ворд на пхп"
ще простіше інклуд по розумному, а не розрахунки робити дурні і безглузді. у мене позіія найправильніша, бо я впевнений у своїй точці зору. та й взагалі це разгвор на порожньому місці "як інклуд файл", тема схожа з "як написати хелло ворд на пхп"
Чим гарний все-таки і страшний php - поріг входження дуже низький. А ось виростають потім - далеко не всі.
У мене позиція ще правильніше, оскільки я не просто впевнений в своїй точці зору, а можу і намагаюся аргументовано її пояснити. Про те, що не один рік досвіду за плечима буду скромно мовчати: smoke:
Писати треба відразу оптимально. Тоді підтримувати і розвивати буде потім набагато простіше і швидше.
Покажіть мені хоч один спосіб, при якому не буде матів, якщо файл "переїде"! (За винятком способу занесення імені файлу в змінну і її подальше використання)
Занесення шляху до / в константу і завжди робота тільки від /. )
Поясніть своє розуміння термінів "кодер" і "програміст".
Имхо: кодер - людина яка бездумно займається саме кодуванням, написанням коду. Програміст - мислить більш широко, алгоритмами, структурами, взаємодією процесів і т.д.
Коротше, кодер пише "аби працювало", а програміст - "оптимально". ;)
і все ж, комрад, поверніться до топу.
той варіант, що зазначений вище, не пішов.
що ще предложете?
Що значить не пішов яка помилка, Варнінг, нотис, по докладніше якщо можна :)
Чим гарний все-таки і страшний php - поріг входження дуже низький. А ось виростають потім - далеко не всі.
У мене позиція ще правильніше, оскільки я не просто впевнений в своїй точці зору, а можу і намагаюся аргументовано її пояснити. Про те, що не один рік досвіду за плечима буду скромно мовчати: smoke:
Писати треба відразу оптимально. Тоді підтримувати і розвивати буде потім набагато простіше і швидше.
Занесення шляху до / в константу і завжди робота тільки від /. )
Имхо: кодер - людина яка бездумно займається саме кодуванням, написанням коду. Програміст - мислить більш широко, алгоритмами, структурами, взаємодією процесів і т.д.
Коротше, кодер пише "аби працювало", а програміст - "оптимально". ;)
пацик жесть. ну давай, удачі, програміст: D
я промовчу про свій досвід.
Warning: include () [function.include]: Failed opening '../' for inclusion (include_path = '.: /') In / on line 11
Можна набагато простіше. Файл menu.php перейменувати в menu.inc і покласти, припустимо, в папку inc потім вказати відносний шлях для файлу включення inc / menu.inc хоча інтерпретатор PHP повинен сам знаходити файли включення йдучи від кореневої папки. Пробуйте. У мене проблем не виникало.
Тому що Ви не зробили як пропонувалося :) знову ці точки ... / ..., да?