Что значит путь файла относительно основного файла index.php сайта в codeigniter? - PullRequest
1 голос
/ 13 января 2012

Я использую файлы и потоки в codeigniter, и одна проблема, с которой я столкнулся, заключалась в том, что такие функции, как fopen, не могли обнаружить файл в той же папке. Например,

Если моя функция и файл находятся в папке HELPER, я не могу просто указать fopen ('file', 'r'), потому что он просто не обнаружит его.

Итак, я зашел на сайт, чтобы посмотреть документацию, касающуюся файлов, и вот что она указывает:

Примечание. Путь относительно вашего основного файла index.php сайта, НЕ вашего контроллера или файлов просмотра. CodeIgniter использует фронт-контроллер, поэтому пути всегда относительно основного индекса сайта.

Итак, я изменил путь к приложению / помощнику / имени файла, и это сработало.

Я знаю, что это вызвано некоторым типом изменения маршрута из-за фронт-контроллера (index.php), но мое понимание неполно. Может ли кто-нибудь объяснить мне, что именно происходит в CI, когда я пробую что-то вроде fopen?

Спасибо за ваше время.

1 Ответ

1 голос
/ 13 января 2012

Это довольно просто. Существует один-единственный файл, который обрабатывает контроллеры / модели / помощники (который называется «Front Controller»): /index.php Так что все происходит через этот скрипт.

Когда вам нужно что-то включить, пути относятся к index.php. Хорошей практикой будет включение ваших файлов с использованием констант среды CodeIgniter. Вы можете взглянуть на это: http://jimdoescode.blogspot.com/2011/01/some-codeigniter-constants.html.

Например:

<?php
include(APPPATH ."/helpers/my_helper.php");
?>
...