Реализация уровня «логики приложения» в CodeIgniter - PullRequest
0 голосов
/ 20 февраля 2011

В приложениях Asp.NET существует сервисный уровень, который находится между репозиториями и контроллерами, так что разные части приложения могут использовать одну и ту же логику без каких-либо несоответствий при изменении одной части.

Например, в CodeIgniter, если есть часть приложения, которая отвечает на вызовы REST API, мне нужно будет реализовать ту же логику, которая используется в контроллере учетных записей для аутентификации. Если бы было что-то вроде UserService, это было бы так просто.

Что я спрашиваю, думаете ли вы, что этот подход имеет смысл с CodeIgniter, если уже есть встроенная функциональность, которая покрывает это, и если нет, что будет лучшим способом? Должен ли я использовать библиотеки создавать свои библиотеки, которые действуют как сервисный уровень? Должен ли я просто положить все в модели (вероятно, нет)? Или CodeIgniter не подойдет для приложений, которые вообще требуют такой сложности?

Мне нужно ваше понимание этого. Спасибо за помощь.

Ответы [ 2 ]

4 голосов
/ 20 февраля 2011

CodeIgniter может справиться с этим отлично.Идея заключается в том, что контроллер является основной частью запроса, где логика обрабатывается правильно?Таким образом, пользователь нажимает URL-адрес, он идет к контроллеру, и контроллер решает, показать ли им данные, перенаправить их куда-нибудь или сказать им, чтобы они вытолкнули.расширение основного класса CI_Controller), то это будет выполняться для каждого контроллера.Если вы хотите быть более конкретным и иметь разные виды контроллеров, загружающих разные базовые контроллеры, тогда вы можете.

http://philsturgeon.co.uk/news/2010/02/CodeIgniter-Base-Classes-Keeping-it-DRY

1 голос
/ 20 февраля 2011

Вы можете использовать родительский контроллер, чтобы оставаться СУХИМЫМ.PHP не поддерживает какие-либо миксины или множественное наследование, поэтому возможность добавить универсальную функциональность к одному или нескольким вашим контроллерам не так проста.

Что касается аутентификации, якобы этоEllisLabs и другие работают над CodeIgniter 2.0 прямо сейчас.Они упомянули, что это довольно трудная задача, и я думаю, что это свидетельствует скорее о том, что PHP отстой как динамический язык, чем о том, что CodeIgniter не подходит для такого рода вещей.

Если вы еще не состоите в браке с PHP / CI, может оказаться полезным просмотреть предложения Ruby on Rails.Вся эта аутентификация обрабатывается с помощью миксинов и метапрограммирования действительно элегантно и гибко.

...