在使用Codeigniter框架时,我应该在哪里编写业务逻辑:控制器还是模型?

vktxenjb  于 9个月前  发布在  其他
关注(0)|答案(1)|浏览(73)

如果你使用Codeigniter框架,你已经有两个文件夹命名为controllersmodels。当开发一个Web应用程序,我应该写我的业务逻辑,在controllersmodels
我还想知道我是否在models中保留了业务逻辑。我应该将业务逻辑和数据库查询部分分开还是将两者放在同一个类中?

flmtquvp

flmtquvp1#

通常,最好将业务逻辑保持在模型和控制器之外,将其放入 services 中,这些服务只不过是服务于业务逻辑的类。例如,如果您有一个通知系统,您可能有一个NotifierInterface,然后是EmailNotifierSmsNotifier等。然后模型只是一个POPO(Plain Old PHP Objects),它只封装数据,没有额外的逻辑。控制器是HTTP层(请求/响应)和逻辑/模型之间的小粘合剂。
您可以创建一个services文件夹并将它们放在那里。
也就是说,你可以按照你的意愿组织它。一些框架,如CI,给你一个基本的文件结构,但没有人强迫你这样做。以通知程序为例,在我的应用程序中,我有:

src/
    Notifier/
        Email/
            MandrillNotifier
            MailgunNotifier
        Sms/
            TwillioNotifier

字符串
例如,您的controllers在我的应用程序是在src/Http/Controller

相关问题