我目前正在使用 CodeIgniter 及其 HMVC 开展一个项目。http://jenssegers.be/projects/CodeIgniter-HMVC-Modules )
我有一个关于在不同模块中加载模型的最佳方法的一般性问题。到目前为止,我认为直接在不同的模块中加载模型会违反 MVC 规则,并通过在模型的所有者控制器中创建函数来间接访问模型。
例如,
class A
{
function __construct()
{
....
$this->load->model('Model_A');
}
function getUsers()
{
$this->Model_A->getUsers();
return $users;
}
}
Class B
{
....
function getModelAUsers()
{
$users_from_A = Modules::run('A/getUsers'); // This is currently how I do
$this->load->model('A/Model_A'); // This is probably how I could do.
$users_from_A = $this->Model_A->getUsers();
}
}
老实说,创建单独的函数来访问这样的模型是一件很痛苦的事……而且我编码的越多,我就越难重构它。在 MVC 风格的不同模块中访问模型的正确方法是哪种?还是有另一种最好的方法来做到这一点?
还有一件事。该项目将进行大量重构和频繁更新。