Как настроить Codeigniter для обработки нескольких проектов с общей базой ci?
Я видел несколько примеров реализации CI, которые утверждают, что вы можете поместить папки проектов в папку "приложения" для Codeigniter.
Однако я не смог увидеть эту работу, как обещал.Вот что я сделал и что я хотел бы сделать - может быть, вы можете помочь. В качестве аргумента мой корень документа - /www/(это не так, но давайте использовать его для простоты)
Я поместил ядро codeigniter в /www / corelib / codeigniter
Я поставил системная папка codeigniter в файле /www / ci_system
Я поместил каталог приложений в /www / applications
Я поместил свою "точку входа" в /www / dd
Теперь предположим, что у меня есть два проекта: "dataentry"и" cpanel "
Идея в том, что я могу пойти в
H**p://mydomain/dd/dataentry / / для приложения dataentry и
H**p://mydomain/dd/cpanel // для приложения cpanel.
Если я организую каталоги dataentry и cpanel вот так:
/ www / приложения / контроллеры / dataentry
/ www / приложения / контроллеры / cpanel
/ www / приложения / модели / dataentry
/ www / приложения / модели / cpanel
/ www / приложения / представления / dataentry
/ www / приложения/просмотры / cpanel
Я могу заставить это работать нормально. Однако я хотел бы сохранить модель и представление на том же уровне, что и контроллер, чтобы у меня был следующее:
/ www / приложения / dataentry / контроллеры
/ www / приложения / dataentry / модели
/ www / приложения / dataentry / views
/ www / приложения / cpanel / контроллеры
/ www / приложения / cpanel / модели
/ www / приложения / cpanel / views
Это, кажется, не работает.
Есть предложения?
- CF
2 ответа:
Имеет ли каждое приложение ("dataentry" и "cpanel") свой собственный основной индекс.php-файл, который определяет соответствующую переменную $application_folder?
Также - и я уверен, что вы читали документы-но документация CodeIgniter утверждает, что каталог / applications (или каталоги, в вашем случае) должен существовать в каталоге / system следующим образом:
system/application/foo/ system/application/foo/config/ system/application/foo/controllers/ system/application/foo/errors/ system/application/foo/libraries/ system/application/foo/models/ system/application/foo/views/ system/application/bar/ system/application/bar/config/ system/application/bar/controllers/ system/application/bar/errors/ system/application/bar/libraries/ system/application/bar/models/ system/application/bar/views/
Хорошо-у меня это работает так, как нужно. Я постараюсь написать более развернутый "how-to" и предоставлю ссылку в разделе комментариев.
Мне не пришлось ничего менять .htaccess больше, чем требуется CI - я был рад этому. Мой каталог записей выглядит следующим образом:/dd / index.php
Вот два ключевых фрагмента:
list($blank, $webpath, $app) = explode('/', $_SERVER['REQUEST_URI']); $application_folder = $_SERVER['DOCUMENT_ROOT]."/applications/$app";
Это позволяет использовать один индекс.php для обработки всех приложений.
Часть, которую я пропустил, состоит в том, что appName теперь также должен быть первичный контроллер или каталог внутри контроллеров. (Реальная проблема, с которой я столкнулся, заключалась в том, что я хакерствовал так много, что у меня были конфигурации и маршруты, мешающие мне понять, что я на самом деле видел : иногда необходимо начать с чистого листа.)