2011-07-19 52 views
1

我的問題是關於我所做的事是否合適,或者是否會導致安全/性能問題。

我使用$ GLOBALS數組,並用數據庫中的很多值填充它,例如(頁面標題,用戶信息,模板信息等),以便我的所有php文件都可以訪問此信息。我遵循MVC設計模式,所以這就是我的View文件如何訪問模型文件中生成的信息。

如果這不是正確的做事方式,請告訴我爲什麼,以及正確的方法。

謝謝

+0

檢查這個http://stackoverflow.com/questions/3649101/is-view-in-an-mvc-php-program-a-proper-use-of-global-variables – jeni

+0

你正在使用哪個框架? –

+0

你遇到一個具體問題還是一切都很好? – hakre

回答

2

你不遵循MVC模式,你只是使用全局變量,以顯示「共享所有」 -script在一個「無共享」 -architecture東西。

否則輸出可平均的東西視圖,但通常是不與MVC(模型 - 視圖 - 控制器)模式的長期查看混合。你做什麼,模板輸出也許是一個更好的措辭。

如果這不是正確的做法,請告訴我爲什麼,以及什麼是正確的方法。

如果你想實現MVC模式,除這可能是你指的是MVC:

  • 型號:你的文件系統和數據庫
  • 查看:你的HTML輸出+ CSS + JS
  • 控制器:你的PHP腳本

MVC只是一個模式。你可以像你感覺良好一樣實施它。你可以在許多沒有實現的東西中找到它。這只是一種模式。

但更確切地說,MVC模式更常見於面向對象的實現。你的實現與面向對象的實現完全不同,你使用全局狀態而不是對象實例。

但是你沒有在你的問題中寫過你曾經想過實現一個面向對象的MVC模式,並且你使用的模板腳本是其中的一部分。

根據需要完成它可能是完全正確的。

MVC只是一種模式。它有專業人士和騙子的。它有好處,它有後果。這只是一種模式。

特別是如果你關心性能,不要讓事情更復雜,因爲他們需要,例如,加載一個完整的對象樹來顯示HTML模板中的一些變量。

0

不,這是一個非常混亂的做法。

不,它與MVC無關。

模塊化編程的基本概念(支持面向對象的編程,與函數式編程顯着重疊)是全局變量很糟糕 - 構成良好編程(以及良好編程語言)的很多內容都與隔離部件有關來自其他部分的系統。

您將數據存儲在全局變量中並不會幫助您將信息提供給所有php文件。

通過一切手段將它們組合在一個單一的全局數組下,這樣你就不必在函數/方法調用中傳遞它。

填充維護常用數據的一種方法是添加實現對自定義會話處理程序的處理。

相關問題