CakePHP - 文件结构混乱 - 不同的控制器,或者全部在同一个?

时间:2011-03-29 17:38:48

标签: php cakephp cakephp-1.3

为了理解我的困惑/问题,让我先快速概述一下我正在建设的网站:该网站有一个主页和7个类别页面,每个页面都有相同/相似的布局。

在大多数类别主页(例如“用餐”)上,您可以进行搜索(即搜索餐馆),这会将您带到结果页面。这将与......“Theatres”搜索结果页面等等具有相同/相似的布局。

所以 - 虽然有很多部分,但是没有很多页面布局。

问题:我不确定是否应该为每个控制器创建单独的控制器,并为它们使用相同的CSS?或者,如果我可以使用相同的视图文件,但根据url / action..etc以不同方式填充页面上的每个内容区域?

他们都会参考不同的&数据库中的多个表 - 例如,餐馆将引用餐馆餐桌,美食餐桌,zip_codes表等。剧院可能会参考“电影”表,zip_codes表......等等

但是 - 我还想要一些管理工具 - 即“餐馆/编辑”或“剧院/编辑”......等等 - 并非所有页面都有该特定网址的管理员 - 即“户外”可能只是“商业/编辑”或通用的东西......我不知道 - 我很困惑,你可以说。

非常感谢任何帮助。我已经阅读了很多关于CakePHP技术要做的事情,但是我找不到适合不同场景的一般项目结构的任何好资源。 / p>

2 个答案:

答案 0 :(得分:3)

你可以自己回答这个问题。假设您为每个控制器,模型和视图实现了它们,它们有何不同?如果它们仅在它们使用的表名和标签/字符串上有所不同,那么您只能使用一个通用控制器。但是,如果它们在其他方面有所不同(例如,餐厅模型的关系结构与电影模型完全不同),则使用单独的控制器。

为了防止在使用单独的控制器时控制器和视图文件之间重复过多,请尝试在公共基本控制器中推送功能(例如,AppController,基于AppController创建您自己的基本控制器,您的MoviesController和RestaurantsController等等)将来自)。将通用视图代码推送到元素中。

关于CSS的一句话:当然你可以(而且应该)重用它。它与观点分开。只需在视图中使用合理的类名和ID,CSS就很容易重用。

如果您仍然不确定,我会选择单独的控制器。这可能是更多的工作,但它将更清洁,更容易调试。使用上述建议以避免重复。

答案 1 :(得分:0)

-group元素将在布局中的所有站点之间共享(即站点css,站点常见的js库) - 为您的每个类别(页面)(即用餐页面,剧院页面,餐馆页面)制作视图,并在那里放置页面内容(即剧院js,剧院包括) - 理论上,每个人都应该有一个控制器和模型,所以你必须将它们分开。

无论如何,像“餐馆/编辑”或“剧院/编辑”的网址实际上意味着模型“餐馆”,在您的控制器文件中操作“编辑”。

我建议你阅读cakephp网站上的blog tutorial,你应该回答所有的困惑