我现在似乎正卷入与该项目的另一位程序员的辩论中,他认为这些观点没有任何优点.他提出了一个PHP看起来像这样的系统:
$draw = new Draw; $nav = $draw->wideHeaderBox(). $draw->left(). $draw->image(). Image::get($image,60,array('id'=>'header_image')). $draw->imageEnd(). $draw->leftEnd(). $draw->left(10). ''. self::defaultSectionText(). ''. $draw->leftEnd().
等等(这是在控制器btw).现在他的论点实际上是有道理的,他声称如果重新设计,我们需要做的就是在一个地方改变HTML,它会自动改变.但是出于某种原因,这种方法仍然以错误的方式让我感到困惑,对这种方法有什么看法?我的意思是除了不必手动重新键入HTML.
HTML节省时间很有用,但它们只有在直观且易于理解时才有用.必须实例化一个new Draw
听起来不太自然.此外,wideHeaderBox
和left
只会有重要意义的人谁知道紧密的系统.而如果有是重新设计的,喜欢你的同事缪斯?如果wideHeaderBox
变得非常狭窄怎么办?你会改变PHP方法生成的标记(以及样式,可推测)但是留下一个非常不准确的方法名称来调用代码吗?
如果你们只需要使用HTML生成,你应该在视图文件中使用它,你应该在它真正必要/有用的地方使用它,例如:
HTML::link("Wikipedia", "http://en.wikipedia.org"); HTML::bulleted_list(array( HTML::list_item("Dogs"), HTML::list_item("Cats"), HTML::list_item("Armadillos") ));
在上面的示例中,方法名称实际上对不熟悉系统的人有意义.当你回到一个很少访问的文件并想知道你在做什么时,他们也会对你们更有意义.