PHPackages                             infrajs/mark - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. infrajs/mark

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

infrajs/mark
============

v1.0.6(5y ago)02.3k3PHP

Since Dec 20Pushed 5y ago1 watchersCompare

[ Source](https://github.com/infrajs/mark)[ Packagist](https://packagist.org/packages/infrajs/mark)[ Docs](https://github.com/infrajs/mark)[ RSS](/packages/infrajs-mark/feed)WikiDiscussions master Synced 3w ago

READMEChangelog (4)Dependencies (4)Versions (8)Used By (3)

Короткая идентификация массива данных
=====================================

[](#короткая-идентификация-массива-данных)

Установка через composer
------------------------

[](#установка-через-composer)

```
{
	"require":{
		"infrajs/mark":"~1"
	}
}

```

Использование
-------------

[](#использование)

```
$mark = new Mark('~auto/.mymarks/');

$mark->add('name',$fndef, $fncheck)

$mark->setVal('ds'); //Попытка восстановить данные по метке. в папке mymarks будет искатсья файл ds.json

$mark->getData(); //Если файл указанной метки не найден, то вернутся данные по умолчанию определённые с помощью $fndef;

$mark->setData($data); //Данные можно установить вручную. Для ключи будут проверены с помощью $fncheck и если проверка не пройдена будет установлено значение от функции $fndef;

$mark->getVal(); //Получить текущую метку. В этот момент метка будет сгенерирована и сохранена в папке автоматически.
```

Изменение данных
----------------

[](#изменение-данных)

Имя метки может содержать и указания по изменению данных, которые по этой метки будут восстановлены.

Изменения указываются после двоеточия ключ и значения разделяются знаком =. Изменения может быть несколько, отделённые друг от друга двоеточием.

```
mark = 'xxx:keya=vala:keyb=valb:keyc=valc'

```

Применятся или нет изменения зависит от установленного для параметров check-функций, таким образом можно дать возможность пользователю устанавливать значения и гарантировать их корректность к моменту, где их нужно использовать.

Разберём указанный пример. Допустим по метке `xxx` были восстановлены данные

```
{
	"keya":123,
	"keyd":"opa",
}
```

После применения указанных в метке изменнеий получатся данные

```
{
	"keya":"vala",
	"keyb":"valb",
	"keyc":"valc",
	"keyd":"opa",
}
```

Но параметр keyc никак не зарегистрирован черзе функцию add и будет удалён. А новое значение параметра keya не пройдёт проверку и будет сброшено на значение по умолчанию 0. В итоге получится:

```
{
	"keya":"0",
	"keyb":"valb",
	"keyd":"opa"
}
```

В коде это будет записано следующем образом:

```
	$mark = new Mark('~auto/.test/');

	$mark->add('keya', function(){
		return '0';
	}, function($newval){
		if (!preg_match("/^\d+$")) return false;
		return true;
	});
	$mark->add('keyb', function(){
		return 'bla';
	}, function($newval){
		return true;
	});
	$mark->add('keyd', function(){
		return 'bla';
	}, function($newval){
		return true;
	});
	$mark->setVal('xxx:keya=vala:keyb=valb'); //Метка ~auto/.test/xxx.json уже должна существовать
	$data = $mark->getData(); //Новые данные с изменениям и удовлетворяющие проверкам

	$str = $mark->getVal(); //Будет сгенерировано новая метка для данных и сохранена в папке.
```

###  Health Score

32

—

LowBetter than 69% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity17

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity68

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~222 days

Recently: every ~82 days

Total

7

Last Release

2135d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/341a8ef8a06866ad99b1bbcf0216fd8e331b076b1690a7d992c386192674b787?d=identicon)[akiyatkin](/maintainers/akiyatkin)

---

Top Contributors

[![akiyatkin](https://avatars.githubusercontent.com/u/953753?v=4)](https://github.com/akiyatkin "akiyatkin (13 commits)")

### Embed Badge

![Health badge](/badges/infrajs-mark/health.svg)

```
[![Health](https://phpackages.com/badges/infrajs-mark/health.svg)](https://phpackages.com/packages/infrajs-mark)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
