Подзаголовок воспламенителя кода - PullRequest
0 голосов
/ 10 февраля 2012

Итак, у codeigniter есть приложение и система. Я хочу добавить еще одну папку с именем «платформа», и она будет иметь ту же структуру каталогов, что и приложение (контроллеры, представления и все).

Как я хочу, чтобы это работало так: - Когда вы загружаете модель, представление, библиотеку, контроллер и т. Д., Он должен сначала проверить приложение (если его там нет, он должен проверить на платформе, а если его нет, он должен показать ошибку) - Я хочу сделать некоторые базовые модели и контроллеры в «платформе» и все контроллеры и модели из «приложения», чтобы наследовать их - Я хочу расширить базовые базовые и библиотечные классы в «платформе», и при необходимости они будут расширены в «приложении»

Я не знаю, может ли воспламенитель кода уже сделать это или ему нужно что-то сделать.

По сути, это что-то вроде плагинов от cakephp (если кто-то знает, как они работают).

Вопрос:

Как мне это сделать?

Ответы [ 2 ]

2 голосов
/ 10 февраля 2012

Существует папка "third_party", в которую вы можете добавить "Sub Application", как вы его называете, или Application "Package".

"Пакет приложения позволяет легко распределять полные наборы ресурсов в одном каталоге с собственными библиотеками, моделями, помощниками, файлами конфигурации и языковыми файлами. Рекомендуется, чтобы эти пакетыбыть помещенным в папку application / third_party ... "

Источник: http://codeigniter.com/user_guide/libraries/loader.html (почти внизу документа.)

Это делается внутри папки приложения.Может быть способ добиться того, чего вы хотите, и поместить вашу папку вне приложения, выполнив следующее:

$this->load->add_package_path(PATH_OUTSIDE_APPLICATIONS.'/my_package/');

вместо:

$this->load->add_package_path(APPPATH.'third_party/my_package/');

Я не проверял, если этобудет работать еще.Но вы можете попробовать это!

0 голосов
/ 10 февраля 2012

Вам придется выполнить некоторую перенастройку файлов, но вы можете создать две папки с отдельными файлами приложений, а затем указать два отдельных индексных файла на каждую папку с переменной $ application_folder.

У меня естьна самом деле никогда не пробовал это, но это должно работать.Убедитесь, что вы также обновили переменную $ system_folder.

Подробнее здесь:

http://codeigniter.com/user_guide/general/managing_apps.html

...