Разбейте общую модель в приложениях для воспламенения кода - PullRequest
1 голос
/ 02 ноября 2009

Я довольно новичок в коде воспламенителя и PHP (из Java-фона).

Я хочу создать модель, которая будет использоваться тремя приложениями, которые могут запускаться или не работать на одном компьютере. Поэтому я хочу, чтобы классы моделей были переносимыми для всех трех и легко обрабатывались системами SCM.

Итак, я думал сделать следующее: Если я уже разбил приложения на отдельные каталоги для совместного использования CI: / Var / WWW / app1 / Вар / WWW / App1 / модели / Вар / WWW / App1 / контроллеры ... / Var / WWW / app2 / Var / WWW / app3 / Вар / WWW / система

затем создайте общую папку для размещения модели:

/ вар / WWW / общие / модели

Теперь я мог либо взломать CI, чтобы искать там модели, или я мог бы использовать символические ссылки, т.е. / var / www / app1 / models -> ../shared/models / var / www / app2 / models -> ../shared/models / var / www / app3 / models -> ../shared/models

Я новичок во внутренней работе PHP, поэтому я думаю, что как минимум это приведет к снижению производительности, потому что файлы модели могут быть загружены до 3 раз (может быть, 4), или в худшем случае это просто barf, потому что есть 4 копии файлов с одинаковыми именами.

Это плохая идея? Есть ли лучший способ сделать это?

1 Ответ

0 голосов
/ 04 ноября 2009

Рассматривали ли вы вместо этого Kohana ? Изначально Kohana была CI, но сама по себе она стала отличной платформой. каскадная файловая система , которую вы не найдете ни в одной другой веб-платформе, очень полезна, если имеется несколько приложений для обмена моделями / представлениями / контроллерами / библиотеками / помощниками и т. Д.

Вот как я бы это сделал в Kohana 2.x:

  • Загрузите папки системы и модулей в папку за пределами корневого каталога http, например, /apps/kohana/system и /apps/kohana/modules

  • Поместите папку приложения где-нибудь поблизости, например. /apps/kohana/applications/app1

  • Установите /public_html/index.php для указания на 3 папки.

$kohana_application = '../apps/kohana/applications/app1';
$kohana_modules = '../apps/kohana/modules';
$kohana_system = '../apps/kohana/system';
  • Теперь просто добавьте модель, которую вы хотите использовать в своих приложениях, в /apps/kohana/system/models/. Или, если вы хотите ограничиться только некоторыми приложениями, создайте модуль, например /apps/kohana/modules/mymodule1, и настройте эти приложения для использования модуля.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...