相关疑难解决方法(0)

扩展CodeIgniter中的Controller类

我有class MY_Controller extends CI_Controller大型配置文件部分的常用逻辑,所以I'va尝试class Profile extends MY_Controller使用配置文件部分的通用逻辑创建,所有与此部分相关的类都应该扩展此Profile类,正如我所理解的那样,但是当我尝试创建时class Index extends Profile我收到错误:

Fatal error: Class 'Profile' not found
Run Code Online (Sandbox Code Playgroud)

CodeIgniter试图找到index.php我正在运行的这个类.

我的错误在哪里?或者也许有更好的方法来标记共同的逻辑?

php codeigniter codeigniter-2

19
推荐指数
3
解决办法
3万
查看次数

谁应该处理复杂查询,数据映射器或服务层中的条件?

这个问题在清除我对此事的困惑方面做得非常好,但我很难找到关于服务层的确切限制应该是什么的可靠来源.

对于这个例子,假设我们正在处理书籍,我们希望通过作者获得书籍.本BookDataMapper可以有一个通用的get()接受条件(S),如书的唯一标识符,作者姓名等这个实现是相当微不足道的(逻辑)方法,但如果我们希望有需要更复杂的查询多个条件是什么?

让我们说我们希望得到某位作者在特定出版商下撰写的所有书籍.我们可以扩展BookDataMapper->get()方法来解析多个条件,或者我们可以编写一个新的方法,如BookDataMapper->getByAuthorAndPublisher().

是否最好让服务层直接调用这些[更具体]的方法,或者在调用BookDataMapper->get()多个条件传递的更通用方法之前解析条件?在后一种情况下,服务层将执行更多逻辑"繁重的工作",使数据映射器相当简单.前一个选项会将服务层几乎完全缩减为中间人,将条件逻辑留给数据映射器等方法BookDataMapper->getByAuthorAndPublisher().

让服务层解析条件的一个明显问题是某些域逻辑泄漏出数据映射器.(这在此处的链接问题中进行了解释.但是,如果服务层要处理条件,则逻辑不会使其脱离模型层;控制器将无论如何调用$book_service->getByAuthorAndPublisher().

php domain-driven-design datamapper

17
推荐指数
2
解决办法
3253
查看次数

在Codeigniter 2中扩展多个模型

如何设置CI2以允许扩展多个模型?

我只能扩展一个名为MY_Model的模型(放入/ application/core)(区分大小写).

选择我正在做的扩展模型; 在模型中..

require_once APPPATH.'core/MY_Another_model.php';
class Test_model extends MY_Another_model {
...
}
Run Code Online (Sandbox Code Playgroud)

我无法在核心系统代码中找到它所声明的位置,只允许将被扩展的模型称为MY_Model.

感谢您的帮助.

php codeigniter codeigniter-2

5
推荐指数
2
解决办法
4262
查看次数