我正在編寫一個CakePHP應用程序,並試圖將經常顯示(或特別長)的文本保存在配置文件中,我們可以輕鬆編輯它。
我應該在哪裏放這個文件,我該如何訪問它?
當我們需要顯示文本時,我也擔心讀取此文件的速度的折衷,以及其他進程可以使用它的鎖定。這是我應該擔心的事情還是框架處理?我應該在哪裏放置我想要在我的CakePHP應用程序中進行抽象的文本?
回答
...具有被頻繁顯示 (或特別長)
根據手冊文本,它是存儲文本好的做法是在多個視圖中的圖元件中使用(正如Rob Wilkerson指出的那樣)。
某處,我們可以 很容易編輯它。
即使在這種情況下,視圖元素仍然是選擇,因爲您可以從多個視圖中引用這個單個元素,所以不需要存儲在數據庫中。如果您更改視圖元素,則無論它被引用/嵌入(非常合乎邏輯),它都會立即生效。
...保存在配置文件中
這會被認爲是不好的做法,因爲你開始削弱你的MVC結構。
Supereasy,超短閱讀: http://book.cakephp.org/view/1081/Elements
祝你好運與您的項目。
如果顯示在多個位置,但是是靜態的,則元素就足夠了。我不確定我會對長度有多擔心,但是一個元素也可以在那裏工作。如果需要頻繁編輯,那麼您可能需要考慮將數據庫放入CakePHP可以輕鬆處理的地方,儘管有人可能已經創建了一個平面文件數據源(我從來沒有看過),這也可以正常工作。
如果您計劃使用任何大量的非結構化文本,您可能還需要考慮使用MongoDB,CouchDB或其他「NoSQL」變體。它似乎不值得你提到的東西,但如果你有更大的背景......也許。
該框架無法處理速度折衷 - 實際上,使用框架完全是您已選擇支持的權衡。我也不會太擔心鎖定,除非您預計會有高負載和頻繁編輯,但這只是一種內在的反應。因爲我不知道您的具體情況,所以請帶上一點鹽。
是的,羅布表示它相當不錯。你可以把它放在視圖中,如果它是靜態的或動態的。如果它是靜態的,你可以直接把HTML部分放入一個元素中,然後可以調用它到任何你想要的地方。如果它是動態的,你可以通過Model從數據庫獲取數據,將它傳遞給Controller,然後將其渲染到一個元素(視圖的一小部分,或者你可以稱之爲Abstract)。
- 1. 我應該在哪裏放置我的CakePHP應用程序的官方數據?
- 2. iPhone MVC應用程序:我應該在哪裏放置模型?
- 3. 我應該在哪裏放置在FBConnect
- 4. 我應該在哪裏放置在phabricator
- 5. 如果我要在java中創建應用程序配置xml文件,我應該在哪裏放置它?
- 6. 我應該在哪裏放置Maven項目的應用程序配置文件?
- 7. 我應該在哪裏將這個庫放在我的android應用程序中?
- 8. 我應該在哪裏放置我的屬性文件進行測試?
- 9. 我應該在哪裏放置索引?
- 10. 我應該在哪裏放置DLL?
- 11. 我應該在哪裏放置ANNOTATE_ITERATION_TASK?
- 12. 我應該在哪裏放置.htaccess?
- 13. 我應該在哪裏放置scriptmanager
- 14. MEF:我應該在哪裏放置CompositionContainer?
- 15. 我應該在哪裏放置docker-compose.yml
- 16. 我應該在哪裏放置界面?
- 17. 我應該在哪裏放置代碼?
- 18. Jython,我應該在哪裏放置我的.py文件
- 19. 我應該在哪裏放置我的CSS文件? Symfony 3.0
- 20. 我應該在哪裏放置我的css文件?
- 21. 我應該在哪裏放置我的chromedriver文件?
- 22. 我應該在哪裏放置的config.txt在我的Python項目
- 23. 我應該在哪裏存儲我的javascript程序的設置?
- 24. 我應該在哪裏部署我的應用程序?
- 25. 我在哪裏設置我的iPhone應用程序的版本?
- 26. 我應該在哪裏放置靜態文本文件?
- 27. 我應該在哪裏放縮放在我的MapActivity中?
- 28. 我應該在哪裏放置映射我的ViewModel的方法?
- 29. Android測驗應用程序 - 我應該在哪裏放置sqlite文件?
- 30. 我應該在哪裏把crossdomain.xml放入我的grails應用程序
Seconding Rob對速度權衡的評論。你已經在PHP基礎上以1/5到1/10的速度命中。在這種情況下不要擔心。另外,當你寫文件的時候,鎖定真的是一個更大的問題,所以如果你只是閱讀它,那你就沒問題。 – 2010-08-10 22:20:20