Как настроить 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 2

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 теперь также должен быть первичный контроллер или каталог внутри контроллеров. (Реальная проблема, с которой я столкнулся, заключалась в том, что я хакерствовал так много, что у меня были конфигурации и маршруты, мешающие мне понять, что я на самом деле видел : иногда необходимо начать с чистого листа.)