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];
    	})
    }