2011-08-25 248 views
0

我:包括模塊,其他模塊

modules: News 
    action: 
    executeIndex 
    executeEdit 
    etc. 
    templates: 
    _editPlus.php 
    IndexSuccess.php 
    EditSuccess.php 

modules: EditNews 
     action: 
     ... 
     templates: 
     ... 

模塊新聞一切都很好。我想爲模塊EditNews包含executeEdit和EditSuccess。我想複製所有功能和模板。 我該怎麼做? 我不想複製文件。我想要一些像include_partial或renderTemplate的東西?有可能嗎? 我使用Symfony的1.4.13

+0

如果兩個操作都是相同的,爲什麼需要在模塊EditNews中添加一個額外的操作? – Gerry

+0

我沒有重複代碼,如果我在第一次添加更改,然後我想在第二次自動更改 –

+0

如果他們應該保持一致,爲什麼還要根本創建第二個動作?重複使用單個動作有什麼問題? – Gerry

回答

0

確實是這樣:

return $this->renderPartial('partialname'); // renders you _partial.php 
return $this->renderText('foobar'); // will only render you 'foobar' 

,這可能也與您無關:

return 'Finish'; // in your action will use ActionnameFinish.php as template 
+0

我想爲其他執行和其他成功呈現executeEdit和EditSucces。我不想重複代碼。 –

0

你說明爲什麼有精益行動,這一點很重要胖的模型。您應該將大部分邏輯移至模型或其他外部類,特別是如果您要在不同的操作中重用該代碼。這樣,您應該能夠將行動中的代碼量減少到幾行,因爲在不同行爲之間維護一個通用代碼庫將是微不足道的。

最後似乎你會需要兩個獨立的動作,所以要麼複製代碼,要經歷在不同的地方維護它的麻煩(=糟糕的做法),或者你像我建議的那樣重構它。

+0

我想在executeEdit和EditSucces中使用executeEdit和EditSuccess(模塊新聞) –

+0

我明白了,但是你採取了錯誤的方法。 – Gerry