вложенный включить в php - PullRequest
0 голосов
/ 11 июня 2010

Структура каталогов:

  • C: /wamp/www/application/model/data_access/data_object.php

  • C: /wamp / www / application / model / users / user.class.php

  • C: /wamp/www/application/controller/projects.php

  • C: /wamp/www/application/controller/links/links.php

У меня есть 2 php-файла data_object.php и user.class.php. Теперь user.class.В php есть оператор include для data_object.php, который относится к user.class.php. Эти два файла находятся в другой иерархии каталогов.Теперь мне нужно включать этот файл user.class.php в различные файлы (например, projects.php, links.php, которые сами находятся в другой иерархии) всякий раз, когда я хочу создать объект User ().

Проблемаотносительный путь для включения файла data_object.php действительно работает, скажем, projects.php, но если я открою links.php, в сообщении об ошибке говорится, что он не может открыть файл data_object.php в user.class.php.Я думаю, что для относительного включения data_object.php он рассматривает путь к файлу, в который включен user.class.php.Я сталкиваюсь с такими проблемами в более чем одном сценарии

Я должен сохранить структуру каталогов такой, какая она есть, но должен найти способ работы с вложенными включениями.Я использовал Document root для сессии, он дает корневой путь, так как C: / wamp / www / i добавил путь для data_object.php, но это не работает.(примечание: прямая косая черта присутствует после www) В настоящее время я работаю на локальном хосте wamp-сервера, но после завершения я должен разместить решение в домене.Просьба помочь

Ответы [ 2 ]

0 голосов
/ 11 июня 2010

Мы используем автозагрузчик ( spl_autoload_register ), который индексирует классы (с token_get_all )
Это некоторая работа, прежде чем она начнет работать, но с автозагрузчиком вы просто начинаете использовать классы.

Это значительно уменьшает количество включений (и проблем)

0 голосов
/ 11 июня 2010

Насколько я помню, относительные пути будут использовать php верхнего уровня для включений, т. Е. И include, который включает в себя еще один включаемый путь, который должен быть относительно первого файла php.

Я пошел по этому относительному пути, о чем я сожалею, я бы настоятельно рекомендовал то, что предложил Пекка, и использовал абсолютный путь , например,

ps добавьте несколько свободных перерывов к вашему вопросу!

...