Как настроить Codeigniter для обработки нескольких проектов с общей базой ci?

StackOverflow https://stackoverflow.com/questions/1540283

  •  20-09-2019
  •  | 
  •  

Вопрос

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

/www/приложения/ввод данных/модели

/www/приложения/ввод данных / представления

/www/приложения/cpanel/контроллеры

/www/приложения/cpanel/модели

/www/приложения/cpanel/просмотры

Похоже, это не работает.

Есть какие-нибудь предложения?

-CF

Это было полезно?

Решение 2

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

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

/dd/index.php

Две ключевые части находятся здесь:

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

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

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

Другие советы

Имеет ли каждое приложение ("dataentry" и "cpanel") свой собственный main 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/
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top