本文对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程序设计人。