【发布时间】:2012-04-25 08:19:19
【问题描述】:
一段时间以来,我一直在寻找一个好的架构模型。我认为在一个好的应用程序中应该有控制器和模块,它们应该是不同页面上的可重复部分。例如购物车 - 如果您在网上商店工作,几乎每个页面都需要它。
对我的另一个要求是它应该支持轻松更改网站的样式(主题|皮肤) - 这可以通过决定两部分的样式来实现 - 视图和资产(css、图像、javascript)。这意味着所有视图都应该位于一个地方,而不是像模块化扩展那样。
最后它的目录结构应该是这样的:
应用程序/ ├────控制器/ | ├────home.php | └────products.php ├────模块/ | └────shopping-cart.php └────观看次数/ └────style_blue/ ├────home.php ├────products.php └────模块/ └────shopping-cart.php 资产/ └────style_blue/ ├────css/ | └────style.css ├────js/ | └────jquery.js └────图片/ └────header.png这不是完美的架构吗?
- 可以使用新的模块和控制器对其进行扩展。
- 它可以有不同的风格(皮肤|主题)
- 它非常简单,同时功能齐全
我是 CodeIgniter 的忠实粉丝,我想用它实现类似的目标。有适合我的插件吗?
【问题讨论】:
-
在你的例子中,模块也应该有控制器、视图、资产文件夹和一个依赖脚本来告诉这个模块依赖的其他模块。
-
不,为了轻松高效地使用新样式,所有视图等都应该在样式目录中。看一看。购物车的视图位于 /application/views/style_blue/modules/
-
如果所有内容都进入同一个目录,你将如何创建分离? app 中的 form.css 与模块中的 form.css 有何不同?
-
你不需要它。所以没有办法像我的架构那样做,是真的吗?
标签: codeigniter architecture modular