【发布时间】:2012-01-10 19:10:33
【问题描述】:
在我的 codeigniter 控制器函数中,我使用以下代码来生成我的视图并插入所有必要的内容:
$left_column = $this->load->view('widgets/sub_navigation', $subnav_data, true);
$left_column .= $this->load->view('widgets/search_box', '', true); //Set data to be loaded into columns
$left_column_base = $this->load->view('widgets/assist_navigation', '', true);
$center_column = 'this is center column';
$right_column = $this->load->view('widgets/ask_us_a_question', '', true);
$right_column .= $this->load->view('widgets/newsletter', '', true);
$right_column .= $this->load->view('widgets/latest_news', '', true);
$this->template->inject_partial('left_column', $left_column); //Inject data into the partial columns
$this->template->inject_partial('left_column_base', $left_column_base);
$this->template->inject_partial('center_column', $center_column);
$this->template->inject_partial('right_column', $right_column);
$this->template->build('template',$data);
我使用的是三列布局,上面的代码规定了每列中显示的内容。它以非常模块化的方式工作,让我可以快速自定义每个页面。
有没有办法简化上面的代码,也许使用数组,以减少重复代码,让事情更干??
【问题讨论】:
-
我以前从未听说过“DRY”这个词,有人能详细说明一下吗?
-
@DavidNguyen 你是认真的吗?在这种情况下,en.wikipedia.org/wiki/Don't_repeat_yourself
-
@DavidNguyen,这意味着不要重复自己,这是一种避免复制意大利面的模式。
-
@Esailija 重复代码不一定是“意大利面条代码”
-
重复(然后稍作修改)的代码通常称为意大利面条代码。或Big Ball Of Mud antipattern。
标签: php model-view-controller templates codeigniter dry