PHPackages                             inok/dto - 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. [Database &amp; ORM](/categories/database)
4. /
5. inok/dto

ActiveLibrary[Database &amp; ORM](/categories/database)

inok/dto
========

DTO with Hydration for PDO

1.0.0(2y ago)028MITPHPPHP &gt;=7.4.0

Since Dec 2Pushed 2y ago1 watchersCompare

[ Source](https://github.com/nchizhov/inok-dto)[ Packagist](https://packagist.org/packages/inok/dto)[ RSS](/packages/inok-dto/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (1)Dependencies (1)Versions (2)Used By (0)

Используется для получения DTO-объекта из PDO-запроса
=====================================================

[](#используется-для-получения-dto-объекта-из-pdo-запроса)

На данный момент поддерживаются типы: **string**, **bool**, **int**, **float**, **DateTimeImmutable**. Трейты:

- `toJSON` - преобразование в JSON, можно передать список нужных полей массивом
- `toArray` - преобразование в массив, можно передать список нужных полей массивом
- `toPDO` - преобразование в массив, пригодный для PDO, можно передать список нужных полей массивом
- `updateDTO` - возможность получения изменённых полей:
    - `switchUpdate` - смена режима вставки/добавления DTO
    - `resetUpdate` - сброс измененных полей на текущие значения
    - `getUpdateFields` - получение списка измененных полей, если передается значение:
        - `true` (по-умолчанию) - получение массива только названий полей
        - `false` - получение массива полей, дополнительно со значениями `old` и `current`

Пример DTO:
-----------

[](#пример-dto)

```
/**
 * @property int $id
 * @property string $name
 * @property string $workgroup
 * @property int|null $workplace_id
 * @property DateTimeImmutable|null $created_at
 */
class ComputerDTO extends HydrateDTO {
  private int $id;
  /** modify=mb_strtolower */
  private string $name;
  private string $workgroup;
  private ?int $workplace_id = null;
  /** sql=Y-m-d H:i:s; show=Y-m-d */
  private ?DateTimeImmutable $created_at = null;
}
```

, где комментарии:

- `modify` - функция для модификации исходного значения **ДО** гидрации
- `sql` - для SQL-формата даты. Если не указано, то используется формат `Y-m-d H:i:s`
- `show` - для остального (`toArray`, `toJSON`). Если не указано, то используется формат `Y-m-d H:i:s`

###  Health Score

20

—

LowBetter than 14% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity7

Limited adoption so far

Community4

Small or concentrated contributor base

Maturity42

Maturing project, gaining track record

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

Unknown

Total

1

Last Release

896d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/ce0f496c0c04c90c29675b08f834ad58707bc8e3498e1693e198e23e0b3e5871?d=identicon)[nchizhov](/maintainers/nchizhov)

---

Tags

pdodtohydration

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/inok-dto/health.svg)

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

###  Alternatives

[doctrine/dbal

Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and management.

9.7k578.4M5.6k](/packages/doctrine-dbal)[ifsnop/mysqldump-php

PHP version of mysqldump cli that comes with MySQL

1.3k5.5M69](/packages/ifsnop-mysqldump-php)[nette/database

💾 Nette Database: layer with a familiar PDO-like API but much more powerful. Building queries, advanced joins, drivers for MySQL, PostgreSQL, SQLite, MS SQL Server and Oracle.

5656.7M234](/packages/nette-database)[dibi/dibi

Dibi is Database Abstraction Library for PHP

5013.8M120](/packages/dibi-dibi)[aura/sql

A PDO extension that provides lazy connections, array quoting, query profiling, value binding, and convenience methods for common fetch styles. Because it extends PDO, existing code that uses PDO can use this without any changes to the existing code.

5632.5M43](/packages/aura-sql)[aura/sqlquery

Object-oriented query builders for MySQL, Postgres, SQLite, and SQLServer; can be used with any database connection library.

4572.9M34](/packages/aura-sqlquery)

PHPackages © 2026

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