2016-04-26 52 views
1

我正在使用的PayPal Rest API創建和接受PayPal付款一個Symfony的2 Web應用程序。Symfony的2:如何以及在何處存儲運行時設置文件

爲了能夠給每個用戶重定向到一個PayPal頁面在他的語言中,我們必須爲每種語言創建/區域設置的Experience Profile

每個Experience Profile必須創建只有一次。例如曾經爲US區域的輪廓已經創建,此配置文件可以使用相同的語言環境重新用於每一位客戶:

  1. 客戶輸入自己的地址和我的網頁上contry XY
  2. 我的頁面檢查天寒XY區域存在
  3. XY區域創建新的配置文件並將其存儲或現有的

每個配置文件都有一個唯一的ID重複使用。 因此,我正在尋找一種方法來存儲區域設置/ ID對。一個簡單的解決方案將是一個JSON文件。 但是,在Symfony結構中存儲此文件的位置?

配置文件是當過,從一個新的國家用戶把支付動態創建。因此這些數據是在運行時創建的,因此它不屬於我認爲的Symfony標準config。我甚至不知道這些文件夾是否可以通過我的代碼訪問/寫入。

所以:什麼是存儲這樣的文件在正確的地方。

編輯: 作爲@JimL在評論中指出,當然有可能存儲在數據庫中的數據。然而,我正在使用的支付包應該用於不同的項目,因此應儘可能與項目的其餘部分分開。

這裏的目標是,將數據存儲在的文件中,而不是DB中。當然,DB更有效率,但在這種特殊情況下,一個簡單的文件就足夠了。

的問題是:在哪裏存儲這個文件?第一個想法是使用/MyBundle/Resources/config,因爲這個目錄保存所有其他配置文件。但是,在運行時更改的文件是否正確?

+0

聽起來像是你可以只添加它作爲一個關係到用戶的實體。然後將存儲在db – JimL

+0

不,那不是要走的路。該配置文件未鏈接到特定用戶。所有選擇「USA」作爲國家的用戶都將使用US-profile。如果同一用戶在他的下一次購買中選擇「加拿大」,他應該使用CA配置文件等。此外,支付邏輯在分離捆綁中實施,因此可以在其他項目中重新使用。我想保留這些數據遠離數據庫。 –

+0

Bundles可能會添加數據庫實體,我仍然認爲這應該在數據庫中。如果沒有鏈接到用戶,然後鏈接到付款 – JimL

回答

2

爲3.x的標準的Symfony目錄結構是:

應用程序/ 應用程序配置,模板和翻譯。

bin/ 可執行文件(例如bin/console)。

src/ 該項目的PHP代碼。

測試/ 自動測試(例如單元測試)。 標準的目錄結構爲:

VAR/ 生成的文件(高速緩存,日誌等)。

vendor/ 第三方依賴關係。

web/ Web根目錄。

您可以將它放在自定義目錄下的標準var目錄中。記住權限。在var目錄

更多基本信息: http://www.linfo.org/var.html

+0

我正在使用沒有'var /'目錄的Symfony 2.8。相反,緩存,日誌等位於'app /'中。我現在在我的PaymentServices中注入'kernel.cache_dir'並將數據存儲在那裏。 –

+0

這是有爭議的。清除緩存將清除您的數據配置文件。也許更好的選擇是從用戶配置中獲取存儲位置。 –

相關問題