CodeIgniter的控制器,业务逻辑实例分析

CodeIgniter的控制器,业务逻辑实例分析
本文对CodeIgniter控制器业务逻辑进行了分析,分享给您参考,如下:

以前的分析是,公共控制器被分配到模块中,以便于对特定模块进行控制,并将具体的实现类放在库中,适合于库吗控制器中应该放置更多的业务逻辑

先谈谈对CI几个文件夹的理解

助手和库:存储一系列辅助功能和辅助类,这是用来协助控制器和业务逻辑,其中的方法应尽量避免依赖CI,和严格的依赖性,越来越难以重用。把邮件发送为例,发送邮件时,许多参数不变,如编码、协议、端口等,我们可以配置这些参数配置,那么库封装了一个类发送的邮件,然后得到CI实例读取这些参数。在这个时候,有一个依赖词的实例。这个类只能在CI框架中使用。其他系统需要重写而不重用。如果发送的类仅仅是一个接收参数并封装了传输方法所以,尽可能使助手、图书馆简单化,责任变得单一。

控制器:控制器目录,控制器用来接管程序并起到连接作用,通常我们把业务逻辑写在操作中,但是随着业务变得复杂,动作代码将变得越来越臃肿,难以维护

模型:模型目录,CI模型的主要职责是处理数据库和获取数据,很多时候业务逻辑也放在模型中,但是业务逻辑和模型实际上是两件事,模型只获取数据,业务逻辑可以根据业务需要组合这些数据。可能有很多方法来结合它。把它放在模型中会使模型难以维护,也不利于重用。当我们根据一定的条件缓存数据时,我们可以得到数据和缓存结果。这两个过程是用同样的方法编写的。但是,当相同的数据需要以另一种形式缓存时,我们发现获取数据的方法是不可用的。

third_party:第三方类库目录。当你得到一个类库,不要直接使用它,它可以封装在库,使其更适合的系统,和其他的人也会有使用它的难度。

可以发现,每个文件夹都有自己的职责,每个模块都有自己的家,有自己的功能,业务逻辑应该怎么做呢

在这种情况下,我们还应该设置一个业务逻辑家,建立一个存储业务逻辑的唯一目录,并暂时将其命名为服务,控制器主要负责接收参数和呼叫服务、服务调用模型、每个层。

这里有一个如何做它的方法:

我们可以重写my_load和复制代码直接添加的服务方法如下:美元->荷载->服务('user_service ');叫它。

但是许多业务逻辑需要获得CI实例。在这里,我们可以参考建模方法,通过建立一个my_service核心,继承其它类的其他服务,这样子服务的使用一样,控制器。
类my_service
{
公共功能__construct()
{
log_message('debug、服务类初始化);
}
功能__get($键)
{
CI = get_instance(美元);
返回$;
}
}

事实上,主要的想法是有一个层处理业务逻辑,有这层在java。与CI的不断熟悉,发现这层需要实现解放的控制器和模型的目的。还有许多其他类似的做法。如果有很多地方需要使用Web服务或缓存等,也可以按照上述思想在文件夹中进行处理,这样就可以方便地管理

更多的读者感兴趣的CodeIgniter相关内容可以看看网站:的CodeIgniter入门教程和CI(CI)框架。

希望本文有助于基于CodeIgniter框架PHP程序设计人。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部