文件结构+控制器之间的共享功能

时间:2011-05-11 22:02:44

标签: content-management-system php fuelphp

所以我遇到了文件结构问题,我正试图找到不重复的最佳方法。我试图获得与每个额外部分(音乐,电影,节目等)共享的功能。喜欢的功能,建议,标签和列表。我正在寻找有关如何构建它的建议,以便最小化代码重复并轻松安全地访问每个部分的功能。详情如下。我也在使用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]

- 喜欢

- 标签(多对多)

- 建议(UNION交叉引用)

- 列出(在这种情况下所有曲目和歌曲名称)[one-to-many]

显示(Model_Shows)[一对一Model_List]

- 喜欢

- 标签(多对多)

- 建议(UNION交叉引用)

- 列出(在这种情况下所有剧集名称和编号)[一对多]

正如您所知,大多数代码只是具有不同的URL结构,并且在使用哪个表时会有一些更改。我只是不确定如何处理最好的事情,只需要一个更有经验的视图处理所有这些附加功能,每个列出music.php,shows.php,movies.php任何其他任何将被添加。

1 个答案:

答案 0 :(得分:1)

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

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

您只需在所有列表控制器中扩展基本控制器,并继承基本控制器中的所有功能。

有关how to structure base controllers in fuel的更多详情。