oscarricardosan / cache_object
一个小型包,用于在代码块中处理缓存,无需使用会话并避免使用 'array_has' 或类似功能。
v1.1.5
2019-05-08 14:25 UTC
This package is not auto-updated.
Last update: 2024-09-23 16:01:34 UTC
README
无差别的 PHP 包。
一个小型包,用于在代码块中处理缓存,无需使用会话并避免使用 array_has
或类似功能。
$productCache= new CacheObject([0=> 'A']); $productCache->set(1, 'B'); if($productCache->exists(0)){ return $productCache->get(0); }
use Oscarricardosan\CacheObject\CacheObject; class Product { /** * @var CacheObject */ protected $productCache; public function __construct() { $this->$productCache= new CacheObject([ 'potato'=> ['name'=> 'Potato', 'value'=> 10] ]); } public function addTomatoToProducts($value) { $productCache->set('tomato', $value); } public function getTomatoProduct() { if(!$productCache->exists('tomato')){ $productCache->set('tomato', ['name'=> 'Tomato default', 'value'=> 7]); } return $productCache->get('tomato'); } } ____________________________________________ $product= new Product(); print_r($product->getTomatoProduct()); //['name'=> 'Tomato default', 'value'=> 7] $product->addTomatoToProducts(['name'=> 'Real Tomato', 'real_value'=> 1200, 'money', 'COP']) print_r($product->getTomatoProduct()); //['name'=> 'Real Tomato', 'real_value'=> 1200, 'money', 'COP']
方法 "getOrSet",接受获取的键作为参数,如果不存在,则执行第二个参数,该参数必须是一个函数。它可以避免使用 "if ($ productCache->exists ('tomato'))"。
public function getTomatoProduct() { return $productCache->getOrSet('tomato', function(){ return ['name'=> 'Tomato default', 'value'=> 7]; }) }