2017-01-13 63 views
2

我正在使用Symfony將一些文件緩存到我的文件系統。如何從symfony緩存條目獲取創建時間戳?

目前我有一個YAML文件被解碼爲一個PHP數組,然後我將這個緩存與Symfony Caching組件一起存儲。

當我的YAML文件發生變化時,我需要重新緩存它,即使它已經在緩存中。我需要獲取緩存文件(包含解碼後的YAML)的修改時間並將其與我的YAML文件進行比較。

如果我的YAML文件的修改時間較新,我需要重新緩存。

如何獲取緩存條目的創建時間?我知道Symfony在緩存條目中有創建時間。所以它有數據,我只是想知道是否有一個乾淨的方式來獲得它。我知道這是因爲條目如下所示:

1515867059 
<CacheEntryName> 
<SerializedData> 

1515867059是創建時的unix時間戳。

希望有人能幫助我。

編輯: 我想這也將是有益的,如果我可以得到緩存項的絕對路徑。這樣我就可以生成SplFileInfo對象,並從中獲取修改時間。

乾杯。

+0

問題:你有部署管道還是自動化過程?如果是這樣,當部署新文件時,只需重新創建緩存,並確保您的信息100%正確無誤。當然,緩存重新創建可以通過緩存預熱器來完成,因此您不必擔心性能,因爲它將是應用程序返回之前完成的單一任務任務 – DonCallisto

回答

0

Symfony緩存目前沒有辦法處理這個問題。作爲一個臨時的解決方案,我自己加入了一個數組:

$cached->set([ 
    'value' => $value, 
    'timestamp' => time() 
]); 

現在就工作。