我只是发布这个问题,以便你们中的一些人能够以正确的方式指出我。我正在慢慢地热衷于面向对象编程,开始理解这个概念。我想成为一个良好的坚实核心或基础,以用作CMS后端。它还将使用MVC。我一直在使用http://gilbitron.github.com/PIP/作为MVC-base。
我不知道的是以下内容:
说,在后端的projectpage上,我有两个部分:htmltext和projects,我应该都可以对其进行编辑。uri将类似于:// domain / backend / projects(方法将是索引并显示2个部分)
当我单击项目时,应该如何处理?// domain / backend / projects / projects /或// domain / backend / projects / list /
更进一步,一个项目将保存一些图像或画廊:// domain / backend / projects / edit / 5 / gallery / 2
首先,我的问题是:这将是一个好方法吗,更重要的是,如何在OOP中实施
主要项目负责人:
class projects {
function index(){
// view index
}
function edit{
$project = new Project();
$projectdata = $project->load(5);
}
}
单个项目负责人
class project {
function __construct(){
$this->projectmodel = $this->loadModel('project_model'); // prepare the model to be used
}
function load($id){
$this->projectmodel->loadproject($id);
}
}
项目模型
class project_model extends model { //extends for DB access and such
function __construct(){
// do stuff
}
function loadproject($id){
return $this->db->query("SELECT * FROM projects where id=" . $id . " LIMIT 1");
}
}
现在我的问题。如果该项目有图像,我应该在哪里加载图像类来处理这些图像?我应该像$ this-> images = new Images();一样将其加载到project_model中吗?并在模型内部具有功能
function loadimages($id){
$this->images->load($id);
}
然后图像将类似于:
class image extends model { //extends for DB access and such
function __construct(){
}
function load($id){
return $this->db->query("SELECT * FROM project_images where id=" . $id . " LIMIT 1");
}
}
似乎控制器和模型以这种方式混杂在一起。从逻辑上讲,项目是一个容纳projectinfo的容器,它可以是文本,图像甚至是视频。我将如何在逻辑上进行设置。
冉冉说
米脂