如果你使用Codeigniter框架,你已经有两个文件夹命名为controllers和models。当开发一个Web应用程序,我应该写我的业务逻辑,在controllers或models?我还想知道我是否在models中保留了业务逻辑。我应该将业务逻辑和数据库查询部分分开还是将两者放在同一个类中?
controllers
models
flmtquvp1#
通常,最好将业务逻辑保持在模型和控制器之外,将其放入 services 中,这些服务只不过是服务于业务逻辑的类。例如,如果您有一个通知系统,您可能有一个NotifierInterface,然后是EmailNotifier,SmsNotifier等。然后模型只是一个POPO(Plain Old PHP Objects),它只封装数据,没有额外的逻辑。控制器是HTTP层(请求/响应)和逻辑/模型之间的小粘合剂。您可以创建一个services文件夹并将它们放在那里。也就是说,你可以按照你的意愿组织它。一些框架,如CI,给你一个基本的文件结构,但没有人强迫你这样做。以通知程序为例,在我的应用程序中,我有:
NotifierInterface
EmailNotifier
SmsNotifier
services
src/ Notifier/ Email/ MandrillNotifier MailgunNotifier Sms/ TwillioNotifier
字符串例如,您的controllers在我的应用程序是在src/Http/Controller。
src/Http/Controller
1条答案
按热度按时间flmtquvp1#
通常,最好将业务逻辑保持在模型和控制器之外,将其放入 services 中,这些服务只不过是服务于业务逻辑的类。例如,如果您有一个通知系统,您可能有一个
NotifierInterface
,然后是EmailNotifier
,SmsNotifier
等。然后模型只是一个POPO(Plain Old PHP Objects),它只封装数据,没有额外的逻辑。控制器是HTTP层(请求/响应)和逻辑/模型之间的小粘合剂。您可以创建一个
services
文件夹并将它们放在那里。也就是说,你可以按照你的意愿组织它。一些框架,如CI,给你一个基本的文件结构,但没有人强迫你这样做。以通知程序为例,在我的应用程序中,我有:
字符串
例如,您的
controllers
在我的应用程序是在src/Http/Controller
。