Разбейте общую модель в приложениях воспламенителя кода

Asked
Viewd748

1

Я новичок в воспламенителе кода и php (исходящем из фона java).

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

Моя мысль заключалась в следующем: Если я уже разбил приложения на отдельные каталоги для совместного использования CI: / var / www / app1 / var / www / app1 / модели / var / www / app1 / контроллеры ... / var / www / app2 / var / www / app3 / var / www / system

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

/ var / www / shared / models

Теперь я мог либо взломать 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

Думали ли вы об использовании вместо него 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, и настройте эти приложения для использования этого модуля.
  • Вообще-то, ничего.Я проверил сайт и форумы - он выглядит очень активным, а уроки отличные. Спасибо за ответ.

    15 ноября 2009, 03:56
  • Спасибо за ответ, Лукман. Как у Kohana стабильность и масштабируемость? Являясь ответвлением от CI, получает ли он достаточно внимания для тестирования в различных производственных средах?

    15 ноября 2009, 03:26
  • StackOverflow - это не только точный ответ на вопрос.Речь идет о решении проблем программирования.Если CodeIgniter не может решить проблему, я предложил лучшую альтернативу.Я сам бывший пользователь codeigniter, который перебрался в Kohana из-за моего разочарования по поводу недостатков codeigniter.

    Lukman16 ноября 2009, 05:13
  • Как это ответ на вопрос CodeIgniter?

    Teej16 ноября 2009, 04:04