我是 Codeigniter 菜鸟,虽然我有大约 2 年的 PHP 经验。我已经阅读了 Codeigniter 文档,并创建了一些简单的示例,但现在我正在着手进行一个实际项目,并且我想确保我能走上正轨。
这是问题所在:我正在构建一个单页游戏应用程序,并且在该页面上会有很多动态/数据库数据。我已经为页面创建了一个控制器和视图,到目前为止一切都非常简单:
//controller (application/controllers/main.php)
class Main extends CI_Controller {
public function index()
{
$this->load->model('Model'); //load DB abstraction model
$this->load->helper('url'); //load URL helper (base_url() function etc)
$data = array("somestuff","otherstuff");//some general data for the page
$this->load->view('header');
$this->load->view('mainview', $data);
$this->load->view('footer');
}
}
//view (application/views/mainview.php)
<div id="container">
<div id="tab1">
some data related to logged in user
</div>
<div id="tab2">
some data related to game
</div>
</div>
现在,你看,我们可以将应该在页面上显示的数据分成两组——用户数据和应用程序数据。自然的 OOP 方法是:
1)创建一个用户类并使用其中的一个函数来获取和显示用户数据(加载模型,因为我们使用的是MVC)
2) 创建一个或多个与游戏相关的类,并使用这些类来计算和显示当前游戏数据
为简单起见,假设我只需要一个 Game 类。
我遇到的麻烦是将我的想法包裹在正确的 CodeIgniter 方法上。用户指南提到了用户创建的库、用户创建的控制器和用户创建的类。这些库对我来说有点令人困惑,因为我不明白它们在这里有何不同。
由于我已经有一个页面控制器(我认为这也是自然的方法,但如果我错了请纠正我),我如何集成用户/游戏类?我有一些具体的问题应该可以帮助我弄清楚这一点。
1) 用户/游戏应该是扩展 CI_Controller 的新控制器吗?
2)类应该放在“库”目录中还是直接放在控制器中?
3)他们应该与主控制器有什么关系(假设我首先创建它是正确的)?