2010-08-10 68 views
0

我正在編寫一個CakePHP應用程序,並試圖將經常顯示(或特別長)的文本保存在配置文件中,我們可以輕鬆編輯它。
我應該在哪裏放這個文件,我該如何訪問它?
當我們需要顯示文本時,我也擔心讀取此文件的速度的折衷,以及其他進程可以使用它的鎖定。這是我應該擔心的事情還是框架處理?我應該在哪裏放置我想要在我的CakePHP應用程序中進行抽象的文本?

回答

0

...具有被頻繁顯示 (或特別長)

根據手冊文本,它是存儲文本好的做法是在多個視圖中的圖元件中使用(正如Rob Wilkerson指出的那樣)。

某處,我們可以 很容易編輯它。

即使在這種情況下,視圖元素仍然是選擇,因爲您可以從多個視圖中引用這個單個元素,所以不需要存儲在數據庫中。如果您更改視圖元素,則無論它被引用/嵌入(非常合乎邏輯),它都會立即生效。

...保存在配置文件中

這會被認爲是不好的做法,因爲你開始削弱你的MVC結構。

Supereasy,超短閱讀: http://book.cakephp.org/view/1081/Elements

祝你好運與您的項目。

1

如果顯示在多個位置,但是是靜態的,則元素就足夠了。我不確定我會對長度有多擔心,但是一個元素也可以在那裏工作。如果需要頻繁編輯,那麼您可能需要考慮將數據庫放入CakePHP可以輕鬆處理的地方,儘管有人可能已經創建了一個平面文件數據源(我從來沒有看過),這也可以正常工作。

如果您計劃使用任何大量的非結構化文本,您可能還需要考慮使用MongoDB,CouchDB或其他「NoSQL」變體。它似乎不值得你提到的東西,但如果你有更大的背景......也許。

該框架無法處理速度折衷 - 實際上,使用框架完全是您已選擇支持的權衡。我也不會太擔心鎖定,除非您預計會有高負載和頻繁編輯,但這只是一種內在的反應。因爲我不知道您的具體情況,所以請帶上一點鹽。

+0

Seconding Rob對速度權衡的評論。你已經在PHP基礎上以1/5到1/10的速度命中。在這種情況下不要擔心。另外,當你寫文件的時候,鎖定真的是一個更大的問題,所以如果你只是閱讀它,那你就沒問題。 – 2010-08-10 22:20:20

6

是的,羅布表示它相當不錯。你可以把它放在視圖中,如果它是靜態的或動態的。如果它是靜態的,你可以直接把HTML部分放入一個元素中,然後可以調用它到任何你想要的地方。如果它是動態的,你可以通過Model從數據庫獲取數據,將它傳遞給Controller,然後將其渲染到一個元素(視圖的一小部分,或者你可以稱之爲Abstract)。

相關問題