Уровень бизнес-логики CakePHP - PullRequest
       45

Уровень бизнес-логики CakePHP

3 голосов
/ 27 сентября 2011

CakePHP, кажется, никогда не упоминал разделение бизнес-логики и слоев доступа к данным приложения. Это мое первое приложение MVC, и мои «толстые модели» оказываются очень толстыми, потому что они содержат все виды бизнес-логики, единственное реальное общее что - доступ к одной и той же базе данных.

Когда вы слышите предложение перенести вашу бизнес-логику из контроллеров в модель, действительно ли приемлемо оказаться в таком состоянии? Предоставляет ли CakePHP какую-либо структуру для отдельного уровня бизнес-логики как части их инфраструктуры?

Спасибо, Брайан

1 Ответ

7 голосов
/ 27 сентября 2011

Нет.Мне кажется, что вы сталкиваетесь с классическим недостатком шаблона Active Record.Кроме того, не помогает то, что CakePHP основан на результирующих ассоциативных массивах, а не на экземплярах объектов.Я предлагаю вам взглянуть на пакеты типа Doctrine 2 .Он реализует шаблон DataMapper вместо шаблона ActiveRecord.Он полностью отделяет вашу бизнес-логику от уровня доступа к данным.

Существуют расширения CakePHP для интеграции Doctrine в CakePHP.

...