Как настроить Codeigniter для обработки нескольких проектов с общей базой данных CI? - PullRequest
2 голосов
/ 09 октября 2009

Я видел несколько примеров реализации CI, в которых утверждается, что вы можете поместить папки проекта в папку «Applications» для 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 / просмотры

/ WWW / приложение / Cpanel / контроллеры

/ WWW / приложение / Cpanel / модель

/ WWW / приложение / Cpanel / просмотры

Это не похоже на работу.

Есть предложения?

-CF

Ответы [ 2 ]

0 голосов
/ 09 октября 2009

Хорошо - у меня все работает как надо. Я постараюсь написать более подробные инструкции и предоставлю ссылку в разделе комментариев.

Мне не нужно было изменять .htaccess больше, чем требует CI - я был рад этому. Мой каталог записей выглядит так:

/ дд / index.php

Здесь находятся два ключевых элемента:

list($blank, $webpath, $app) = explode('/', $_SERVER['REQUEST_URI']);
        $application_folder = $_SERVER['DOCUMENT_ROOT]."/applications/$app";

Это позволяет одному index.php обрабатывать все приложения.

Часть, которую я пропустил, заключается в том, что appName теперь также должно быть основным контроллером или каталогом внутри контроллеров. (Реальная проблема, с которой я столкнулся, заключалась в том, что я так много взламывал, что у меня были конфигурации и маршруты, не позволяющие мне осознать то, что я на самом деле видел: иногда начинать с очистки необходимо.)

0 голосов
/ 09 октября 2009

Имеется ли у каждого приложения ("dataentry" и "cpanel") собственный основной файл index.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/
...