2013-06-05 3 views
0

У меня есть существующее приложение, основанное на CodeIgniter, которое использует подход CI ActiveRecord по умолчанию для обработки записей базы данных из моделей. Я бы хотел, чтобы этот объект был создан благодаря внедрению простой ORM для обработки процессов и отношений CRUD.CodeIgniter ORM на существующее приложение

Возможно ли это сделать поверх моей существующей структуры приложения, то есть, например, реализовать каталог «Объекты», который модели требуют для процессов CRUD? Лучше всего создать что-то или использовать Doctrine, DataMapper, Gas, которые являются всеми решениями, на которые я смотрел, но документы рекомендуют заменить модели CI.

Я бы хотел избежать повторной разработки существующей структуры и логики в рамках моделей, но хотел бы реализовать больше подхода, ориентированного на объект.

Спасибо!

+0

Я работал над рядом проектов, которые используют комбинацию DataMapper и стандартных моделей CI. Я не сталкивался с проблемами, использующими оба. Datamapper очень прост в установке и работает в установленном проекте. – keithhatfield

+0

Привет, большое спасибо - пожалуйста, простите мое невежество, но как бы вы установили datampper параллельно CI 'models', можно просто создать папку «objects» для классов datamapper и как они будут вызываться из моделей CI ? (любые конфликты по именам?) – Jon

+1

Вы устанавливаете его в соответствии с инструкциями. Тогда любые модели, которые вы хотите использовать CI, будут «расширять CI_Model» и будут загружаться в контроллеры с помощью '$ this-> load-> model()'. И модели, которые вы хотите использовать DataMapper, будут «расширять DataMapper» и загружаться в контроллер с помощью 'new Class()' – keithhatfield

ответ

0

Я был в этой ситуации, и мое решение создавало автономную библиотеку с CI-агностическим кодом (интеграция Composer для автозагрузки и Doctrine для подключения к базе данных). Затем все эти классы могут быть вызваны и созданы из стандартного потока CI, но также легко перейдут в новый (не CI) проект.

+0

Спасибо Freddie, можно ли использовать DocTrine в другой папке и вызывать из моделей CI, что позволяет мне постепенно заменять Activerecord реализации? – Jon

Смежные вопросы