PHPackages                             dvelum/dr - 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. dvelum/dr

ActiveLibrary

dvelum/dr
=========

Data Record

1.3.0(5y ago)01051MITPHPPHP ~7.4

Since Feb 23Pushed 5y ago1 watchersCompare

[ Source](https://github.com/dvelum/dr)[ Packagist](https://packagist.org/packages/dvelum/dr)[ Docs](https://github.com/dvelum/dr)[ RSS](/packages/dvelum-dr/feed)WikiDiscussions main Synced 4d ago

READMEChangelog (4)Dependencies (3)Versions (6)Used By (1)

[![PHP Version](https://camo.githubusercontent.com/248632894d9d27a25ffd8e154ef857059e7aedef81ab34c3a5b19fd6a912d3a0/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d372e342532422d626c75652e737667)](https://packagist.org/packages/dvelum/dr)[![Total Downloads](https://camo.githubusercontent.com/76a83c5d0fa7861f448a2223b6bfad803ecea09b0c38c45e3c0d7eba5b3494b1/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6476656c756d2f64722e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/dvelum/dr)[![Build and Test](https://github.com/dvelum/DR/actions/workflows/build_and_test.yml/badge.svg?branch=main)](https://github.com/dvelum/DR/actions/workflows/build_and_test.yml)[![Codacy Badge](https://camo.githubusercontent.com/288404af477a163d302e1d2cd3dc3301dd5f0392bf4d71323f205ddf421b9457/68747470733a2f2f6170702e636f646163792e636f6d2f70726f6a6563742f62616467652f47726164652f3139303835343937643866613431363839623063376461346262313331386265)](https://www.codacy.com/gh/dvelum/DR/dashboard?utm_source=github.com&utm_medium=referral&utm_content=dvelum/DR&utm_campaign=Badge_Grade)[![Codacy Badge](https://camo.githubusercontent.com/6b0c9a8152ee54ce8cf8aca3831b5871a6b1970c851fa3bad9533bd2c0f854b3/68747470733a2f2f6170702e636f646163792e636f6d2f70726f6a6563742f62616467652f436f7665726167652f3139303835343937643866613431363839623063376461346262313331386265)](https://www.codacy.com/gh/dvelum/DR/dashboard?utm_source=github.com&utm_medium=referral&utm_content=dvelum/DR&utm_campaign=Badge_Coverage)

Data Record - Инструмент для создания и валидации структур данных
=================================================================

[](#data-record---инструмент-для-создания-и-валидации-структур-данных)

Позволяет создавать и валидировать структуры данных, без привязки к БД / ActiveRecord / ORM.

Можно использовать как замену DTO.

Можно использовать как замену валидатора Active Record или ORM в проектах, где нет желания использовать массивные ORM.

Конечную структуру можно экспортировать в массив, далее сохранить в БД.

Кроме стандартных типов данных и валидаторов, позволяет регистрировать свои.

[Документация](docs/readme.md)

Преимущества
------------

[](#преимущества)

- не нужно создавать обилие классов под каждый тип, заполнять их полями, геттерами и сеттерами
- экономит время на разработку, количество кода в рантайме
- стандартные проверки полей типа minVal, maxVal, maxLength, defaultValue, isNullable делаются одной настройкой в файле конфигурации
- есть возможность проверить всели ли required поля заполнены
- есть слежение за состоянием изменения (получить список полей которые изменились)
- можно создавать собственные (custom) типы данных (достаточно просто)
- использует ленивую загрузку, экономит оперативную память
- значительно меньшее потребление памяти относительно DTO
- автоматическая конвертация типов, например DateTime

```
$record->set('dateTimeField', '2021-01-01 00:00:00');
/**
 * @var \DateTime $result
 */
$result = $record->get('dateTimeField');
```

Установка
---------

[](#установка)

`composer require dvelum/dr`

Упрощенный пример использования
-------------------------------

[](#упрощенный-пример-использования)

Файл настроек реестра Records registry.php

```
