Wrappers是SAE為方便其他平台程式移植過來而開發的一種服務。由於SAE的Runtime環境並不提供持久性本地IO能力,提供的Wrappers非常方便原有程式的移植。
使用場景,使用方法,
使用場景
但需要注意的事,畢竟Wrappers又做了一層封裝,所以在效率上肯定不如原生的接口高。而且在功能上也不如原生接口豐富,所以SAE官方推薦大家優先使用原生接口。
如果你的原有程式中,使用了本地檔案型快取,那么你可以方便地使用saemc://替換本地檔案快取的前綴。
如果你的原有程式中,有檔案存儲的需求,你原來可能是通過NFS或者就是單機提供的存儲服務,那么你可以方便地使用saestor://來替換原來的存儲前綴,注意存儲的用途是用於檔案落地的永久存儲,任何快取、中間臨時交換數據的需求都是不適合使用Storage存儲的.
對比stream
說到Wrappers就必須提到PHP的stream的概念。PHP自4.3版本以來,就引入了stream流的概念,說的簡單點,就是可以用通用的IO讀寫函式來操作各種資源,比如:tcp、udp、http、ftp等等,這樣做的好處是統一了接口的封裝。這就像在Unix中將各種設備都抽象成檔案,你可以使用read/write來操作各種設備,這樣統一了操作接口,易於理解和使用。Wrappers就是用來告訴stream流該如何處理(讀寫)特定的資源。
使用方法
Wrappers使用非常簡單,比如下面就是一個最常見一個使用Wrapper的語句:
$c=file_get_contents("http://");
這裡就是使用"http://" Wrapper實現抓取遠程內容並賦值給一個變數的操作
於SAE提供的Wrappers主要是用來兼容本地寫操作的一些命令,所以一般使用方法如下:
file_put_contents('saekv://config.php','');
include 'saekv://config.php';
上例中演示了 使用"saekv://"這個Wrapper 將配置檔案config.php的內容以"config.php"為key保存到KVDB中,然後用include引用了這個 檔案。
注意:使用Wrappers請要先初始化相應的服務,上例中KVDB服務必須是開啟的狀態.