PHPackages                             djinorm/djin - 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. djinorm/djin

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

djinorm/djin
============

Djin ORM library

7.5.3(6y ago)23154BSD-3-ClausePHPPHP &gt;=7.2.0

Since Sep 29Pushed 6y ago1 watchersCompare

[ Source](https://github.com/djinorm/djin)[ Packagist](https://packagist.org/packages/djinorm/djin)[ RSS](/packages/djinorm-djin/feed)WikiDiscussions master Synced 2d ago

READMEChangelogDependencies (4)Versions (63)Used By (4)

DjinORM [![Build Status](https://camo.githubusercontent.com/69ac98c7fd6b6220e052280c6e05d52a4891e7775344734a491183456d95f06a/68747470733a2f2f7472617669732d63692e6f72672f646a696e6f726d2f646a696e2e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/djinorm/djin)
===========================================================================================================================================================================================================================================================================

[](#djinorm-)

Легковесная ORM, нацеленная на работу с любым типом баз данных, будь то реляционные, документ-ориентированные, колоночные или key-value хранилища. Вы полностью управляете тем, как что и куда вы хотите сохранять и извлекать. Все что для этого нужно - создать репозитории для моделей

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

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

```
composer require djinorm/djin
```

Преамбула
---------

[](#преамбула)

DjinORM состоит из набора компонентов и интерфейсов, взаимодейтвие которых позволяет инкапсулировать логику ее работы

Модель
------

[](#модель)

Модель - это объект, который мы хотим сохранять в БД, отдельная, полноценная сущность, которая может иметь в себе любые вложенные объекты и массивы. Моделью может быть абсолютно любой класс, который реализует интерфейс [\\DjinORM\\Djin\\Model\\ModelInterface](src/Model/ModelInterface.php). Каждая модель должна иметь свой уникальный Id, благодаря которому осуществляется связывание моделей друг с другом.

Id
--

[](#id)

Id - объект, который содержит в себе уникальный идентификатор модели. Именно объект [\\DjinORM\\Djin\\Id\\Id](src/Id/Id.php)должна возвращать каждая модель, и именно благодаря нему осуществляется связывание моделей друг с другом. В PHP все объекты [передаются по ссылке](https://www.php.net/manual/ru/language.oop5.references.php) благодаря чему мы можем присвоить Id какой-либо модели и он автоматически попадет во все ее реляции. Пример:

Представьте, что у нас есть 2 простых модели: User и Comment. Пользователь может писать комментарии, где каждый комментарий должен быть закреплен за пользователем.

Модель пользователя

```
