召唤专家:重构故事(第5/5部分)
二八年九月二十二日·发表的法比安效力
在最后一部分中,我们将一些代码移到了ProductForm
.今天,我们将通过将代码移动到视图以及使用symfony为常见情况提供的一些很好的快捷方式来进一步增强操作。ob娱乐下载
在第3部分中,我们重构了指数
动作,现在看起来像这样:
/ /应用程序/前端/模块/产品/ actions.class.php公共函数executeIndex(){这个美元->产品= ProductPeer::getAvailableProducts();这个美元->getResponse()->setTitle(“所有产品”);这个美元->getResponse()->addStylesheet(“homepage.css”);返回sfView::成功;}
在syob娱乐下载mfony中,默认视图是sfView:成功
,所以我们可以从动作中省略它:
/ /应用程序/前端/模块/产品/ actions.class.php公共函数executeIndex(){这个美元->产品= ProductPeer::getAvailableProducts();这个美元->getResponse()->setTitle(“所有产品”);这个美元->getResponse()->addStylesheet(“homepage.css”);}
在此操作中,我们设置页面标题并添加特定的样式表。即使这段代码按预期工作,也不是正确的方式。这段代码实际上属于视图。让我们把这段代码移到indexSuccess.php
模板,这样我们的动作看起来就像这样:
/ /应用程序/前端/模块/产品/ actions.class.php公共函数executeIndex(){这个美元->产品= ProductPeer::getAvailableProducts();}
要在模板中添加样式表,可以使用use_stylesheet ()
助手:
<!——apps/frontend/modules/product/templates/indexSuccess.php——><?phpuse_stylesheet(“homepage.css”);我们产品< h1 > < / h1 ><?phpforeach(美元的产品作为美元的产品):? ><!——……-->
要将标题从动作移到模板,就有点麻烦了。我们需要在布局中创建一个插槽,我们将在模板中填充:
<!——apps/frontend/modules/templates/layout.php——>< html>(“标题”)?>