PHP code example of infrajs / nostore

1. Go to this page and download the library: Download infrajs/nostore library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

infrajs / nostore example snippets


Nostore::init();
 Nostore::$conf

Nostore::on(); //no-store
Nostore::off(); //no-cache
Nostore::pub(); //public
Nostore::is(); //true - если заголовок Cache-Controll no-store и кэширование полностью запрещено
Nostore::isPub(); //true - если заголовок Cache-Controll public

Nostore::init(); //Выставляются заголовки по умолчанию согласно конфига

Nostore::pub();

Nostore::pub();

Nostore::$conf['public'] = true;
Nostore::init();
//Response Headers
//Cache-Control: max-age=18000, public
Nostore::$conf['public'] = false;
Nostore::init();
//Response Headers
//Cache-Control: no-cache

header('Cache-Control: max-age=18000, public');
Nostore::isPub(); //true
header('Cache-Control: no-cache');
Nostore::isPub(); //false

header('Cache-Control: max-age=18000, public');
Nostore::on()
//Response Headers
//Cache-Control: no-store

Nostore::off();

header('Cache-control: no-cache');
$is = Nostore::check( function (){
	header('Cache-Control: no-cache');
}); //false

header('Cache-control: no-cache');
$is = Nostore::check( function (){
	header('Cache-Control: no-store');
}); //true

header('Cache-control: no-store');
$is = Nostore::check( function (){
	header('Cache-Control: no-cache');
}); //false

header('Cache-control: no-store');
$is = Nostore::check( function (){
	header('Cache-Control: no-store');
}); //true

public static $conf=array(
		"max-age" => 86400, //24 часа, время кэша, когда public:true, для динамики
		"max-age-stat" => 2419200, //4 недели, время кэша когда public:true и вызван Nostore::pubStat() для статики
		
		//План обновлений сайта программистом. В Expires будет подставляться следующая непрошедшая дата
		"expires-year" => [ //dd.mm
			'05.03','10.03',
			'25.01','01.01','18.01',
			'18.02','25.02'],
		"expires-month" => [],//Дата месяца 1,20
		"expires-str" => [], //'next monday'
		"public" => true, //expires работает только с этим ключём
		"port" => array( //указанные файлы можно загрузить по адресу vendor/infrajs/nostore/?port=watch
			"watch" => "https://mc.yandex.ru/metrika/watch.js",
			"twitter" => "http://platform.twitter.com/widgets.js"
		)
	);
json
{
	"expires-year": ["05.03","10.03","25.01","01.01","18.01","18.02","25.02"],
	"expires-month": [1],
	"expires-str": ["next friday"]
}

header('Cache-Control: public');
$res = Nostore::is();
assert(false === $res);
header('Cache-Control: no-store');
$res = Nostore::is();
assert(true === $res);