内容管理系统 - 文件结构 + 控制器之间的共享功能


content management system - File Structure + Shared Features Between Controllers

所以我遇到了文件结构问题,我试图找到不重复事情的最佳方法。我试图获得与每个额外部分(音乐、电影、节目等)共享的功能。功能是喜欢,推荐,标签和列表。我正在寻找有关如何构建它的建议,以便最大限度地减少代码重复并轻松安全地访问每个部分的功能。详情如下。我也在使用Fuel PHP框架:http://fuelphp.com/

有列表:音乐,电影,节目。(http://domain.com/music/view/1)每个列表都支持标签:(http://domain.com/music/tag/view/rock)

到目前为止,这很容易,但是"喜欢"

和"推荐"等功能让我感到困惑,因为我可以在每个列表的控制器中都有"喜欢"。示例 (http://domain.com/music/like/1) 或在其自己的控制器 (http://domain.com/like/music/1) 中。

此外,每个列表都有"推荐

",其中列出了类似的列表,其中包含每个推荐的评论和"喜欢"。因此,"喜欢"可以用于列表和推荐。

音乐 (Model_Music)[一对一Model_List]

--喜欢

-- 标签(多对多)

-- 建议(联盟相互参照)

-- 列表(在本例中为所有曲目和歌曲名称)[一对多]

节目 (Model_Shows)[一对一Model_List]

--喜欢

-- 标签(多对多)

-- 建议(联盟相互参照)

-- 列表(在本例中为所有剧集名称和编号)[一对多]

正如您所知,其中大部分将是相同的代码,只是具有不同的 URL 结构和对要使用的表进行一些更改。我只是不确定如何最好地处理事情,只需要一个更有经验的视图来处理每个列表音乐.php、节目.php、电影.php任何其他将要添加的附加功能。

我建议创建一个基本控制器来构建所有特定的列表。

因此,您将在控制器目录中创建一个列表文件夹,并创建一个listings.php作为列表目录中所有控制器的基础。

您只需在所有列表控制器中扩展基本控制器,基本控制器中的任何功能都将被继承。

有关如何在燃料中构建基本控制器的更多详细信息。